bjr à tous
un peu en retard sur ce coup, maintenant résolu
mais pour compléter le sujet voici un exemple de projections circulaires
cordialement
Code : Tout sélectionner
Global Xcentre.l, Ycentre.l, Rayon.d, angle.l, x1.d, y1.d, x2.d, y2.d, ww = 800, wh = 600
Xcentre = ww / 2
Ycentre = wh / 2
Rayon = 100
If OpenWindow(0, 0, 0, ww, wh, "Projection de rayons", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, ww, wh)
StartDrawing(CanvasOutput(0))
DrawingMode(#PB_2DDrawing_Outlined)
Circle(Xcentre, Ycentre, rayon, RGB(0,0,0))
Circle(Xcentre, Ycentre, rayon + 20, RGB(0,0,0))
For angle = 0 To 360 Step 30
x1 = Xcentre + rayon * Sin(Radian(angle))
y1 = Ycentre + rayon * Cos(Radian(angle))
x2 = Xcentre + (rayon + 20) * Sin(Radian(angle))
y2 = Ycentre + (rayon + 20) * Cos(Radian(angle))
LineXY(x1, y1, x2, y2, RGB(0,0,0))
Next angle
StopDrawing()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Code : Tout sélectionner
Global Xcentre.l, Ycentre.l, Rayon.d, angle.l, x1.d, y1.d, x2.d, y2.d, x3.d, y3.d, x4.d, y4.d, ww = 800, wh = 600
Xcentre = ww / 2
Ycentre = wh / 2
Rayon = 100
If OpenWindow(0, 0, 0, ww, wh, "Projection de facettes", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, ww, wh)
StartDrawing(CanvasOutput(0))
DrawingMode(#PB_2DDrawing_Outlined)
For angle = 0 To 360 Step 30
x1 = Xcentre + rayon * Sin(Radian(angle))
y1 = Ycentre + rayon * Cos(Radian(angle))
x2 = Xcentre + (rayon + 50) * Sin(Radian(angle))
y2 = Ycentre + (rayon + 50) * Cos(Radian(angle))
x3 = Xcentre + (rayon + 50) * Sin(Radian(angle+30))
y3 = Ycentre + (rayon + 50) * Cos(Radian(angle+30))
x4 = Xcentre + rayon * Sin(Radian(angle+30))
y4 = Ycentre + rayon * Cos(Radian(angle+30))
LineXY(x1, y1, x2, y2, RGB(1,155,0))
LineXY(x1, y1, x3, y3, RGB(0,155,0))
LineXY(x1, y1, x4, y4, RGB(0,155,0))
LineXY(x2, y2, x3, y3, RGB(0,155,0))
LineXY(x2, y2, x4, y4, RGB(0,155,0))
Next angle
StopDrawing()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf