Code: Select all
Global x=300, y=500, dist=400
Global text$ = "Purebasic"
LoadFont(0,"Courier New", 60, #PB_Font_Bold|#PB_Font_HighQuality)
Procedure PlotCharacter(char$, angle.d, charangle.d, color)
p1 = x+dist*Cos(angle*#PI/180)
p2 = y+dist*Sin(angle*#PI/180)
DrawRotatedText(p1,p2,char$,charangle,color)
EndProcedure
CreateImage(0,600,600)
StartDrawing(ImageOutput(0))
Box(0,0,600,600,0)
DrawingFont(FontID(0))
angle.d = 235 : charangle.d = 31.3
For i=1 To 9
PlotCharacter(Mid(text$,i,1), angle, charangle, #Black)
angle+8 : charangle-8
Next
dist+5
angle.d = 234 : charangle.d = 32.3
DrawingMode(#PB_2DDrawing_Gradient)
GradientColor(0.0, #Red)
GradientColor(0.1, #Blue)
GradientColor(0.9, #Green)
GradientColor(1.0, #Red)
ConicalGradient(x, y, 90)
For i=1 To 9
PlotCharacter(Mid(text$,i,1), angle, charangle, #Red)
angle+8 : charangle-8
Next
*buffer = DrawingBuffer()
*loc.RGBQUAD = *buffer
While *loc <= *buffer + DrawingBufferPitch()*OutputHeight() - SizeOf(RGBQUAD)
If *loc\rgbBlue = 5 And *loc\rgbGreen = 5 And *loc\rgbRed = 5
*loc\rgbReserved = 0
EndIf
*loc+SizeOf(RGBQUAD)
Wend
StopDrawing()
OpenWindow(0,0,0,600,600,"",#PB_Window_ScreenCentered|#PB_Window_BorderLess|#PB_Window_Invisible)
SetWindowLongPtr_(WindowID(0),#GWL_EXSTYLE, GetWindowLongPtr_(WindowID(0),#GWL_EXSTYLE)|#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(0),0,255,#LWA_COLORKEY)
ImageGadget(0,0,0,0,0,ImageID(0))
HideWindow(0,0)
Repeat
ev=WaitWindowEvent()
Select ev
Case #PB_Event_Gadget
SendMessage_(WindowID(0),#WM_NCLBUTTONDOWN,#HTCAPTION,0)
Case #WM_RBUTTONDOWN
End
EndSelect
Until GetAsyncKeyState_(#VK_ESCAPE) & 32768