Code: Alles auswählen
#WIDTH = 350 : #HEIGHT = 350 : #WSPACE = 40
CreateImage(0,#WIDTH + (#WSPACE * 2),#HEIGHT + (#WSPACE * 2))
OpenWindow(0,0,0,#WIDTH + (#WSPACE * 2),#HEIGHT + (#WSPACE * 2),"void",#WS_OVERLAPPEDWINDOW | 1)
CreateGadgetList(WindowID(0))
ImageGadget(0,0,0,0,0,ImageID(0))
SetWindowColor(0,0)
SetTimer_(WindowID(0),0,40,0)
Procedure WindowCallback(hWnd,uMsg,wParam,lParam)
Static Angle = 45
Select uMsg
Case #WM_TIMER
Angle + 1
StartDrawing(ImageOutput(0))
Box(0,0,#WIDTH + (#WSPACE * 2),#HEIGHT + (#WSPACE * 2))
Circle((#WIDTH / 2) + #WSPACE,(#HEIGHT / 2) + #WSPACE,11,#Red)
DrawingMode(4)
Circle((#WIDTH / 2) + #WSPACE,(#HEIGHT / 2) + #WSPACE,#WIDTH / 2,#HEIGHT / 2)
DrawingMode(0)
X1 = Cos((Angle - 45) * #PI/180) * #WIDTH/2
Y1 = Sin((Angle - 45) * #PI/180) * #HEIGHT/2
X2 = Cos((Angle + 45) * #PI/180) * 100
Y2 = Sin((Angle + 45) * #PI/180) * 100
FX = X1 + (#WIDTH / 2) + #WSPACE
FY = Y1 + (#HEIGHT / 2) + #WSPACE
LineXY(FX,FY,FX + X2,FY + Y2,#Green)
StopDrawing()
SetGadgetState(0,ImageID(0))
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
SetWindowCallback(@WindowCallback())
While WaitWindowEvent() ! 16 : Wend