Re: Rotation d'Ellipse
Publié : ven. 17/oct./2014 9:23
bonjour
@Micoute merci c'est cool
@frenchyPilou, ouiii nous savons tous ici que le fromage des pizzas et rempli de colorants
merci pour le lien des plugins graphiques
Voici une autre option avec l' animation des parts de fromage
Cordialement
@Micoute merci c'est cool

@frenchyPilou, ouiii nous savons tous ici que le fromage des pizzas et rempli de colorants


merci pour le lien des plugins graphiques
Voici une autre option avec l' animation des parts de fromage

Cordialement
Code : Tout sélectionner
Procedure Ellipse_rotation(Axex.l, Axey.l, Xrayon.l, Yrayon.l, Rot.d, Debut.l, Fin.l, Couleur.l)
Protected angle.d, R.d, X.d, Y.d, Posx1.l, Posy1.l, Posx2.l, Posy2.l
R = Radian(Rot)
For o = Debut To fin
Angle = Radian(o)
x = Cos(Angle) * Xrayon
y = -Sin(Angle) * Yrayon
Posx1 = Round(X * Cos(R) + Y * Sin(R), #PB_Round_Nearest) + Axex ;round pour un meilleur tracé
Posy1 = Round(X * Sin(R) - Y * Cos(R), #PB_Round_Nearest) + Axey
If Posx2 = 0 And Posy2 = 0 : Posx2 = Posx1 : Posy2 = Posy1 : EndIf
LineXY(Posx2, Posy2, Posx1, Posy1, Couleur)
Posx2 = Posx1
Posy2 = Posy1
Next o
EndProcedure
Procedure chart(Axex.l, Axey.l, Xrayon.l, Yrayon.l, Rot.d, Debut.l, Fin.l, Couleur1.l,Couleur2.l)
If Debut > fin : Swap Debut , Fin : EndIf
Ellipse_rotation(Axex, Axey, Xrayon, Yrayon, Rot.d, Debut, Fin, Couleur1)
x.l = Axex + Xrayon * Cos(Radian(Debut))
y.l = Axey + Yrayon * Sin(Radian(Debut))
LineXY(Axex, Axey, x , y, Couleur1)
x = Axex + Xrayon * Cos(Radian(Fin))
y = Axey + Yrayon * Sin(Radian(Fin))
LineXY(Axex, Axey, x , y, Couleur1)
If couleur1 <> couleur2
x = Axex + (Xrayon - 2 ) * Cos(Radian(debut + (Fin - debut) / 2 ))
y = Axey + (Yrayon - 2 ) * Sin(Radian(debut + (Fin - debut) / 2 ))
FillArea(x, y, Couleur1, Couleur2)
EndIf
EndProcedure
Procedure chartman(Axex, Axey, Xrayon, Yrayon, Debut, Fin)
For u = 1 To 4
Couleur1.l = RGB(Random(255) ,Random(255), Random(255))
For i = 1 To 80
StartDrawing(CanvasOutput(0))
Chart(Axex, Axey, Xrayon, Yrayon, 0 , 160, 240, RGB(254, 255, 255),RGB(255, 255, 255))
Chart(Axex, Axey, Xrayon, Yrayon, 0 , Debut - i, Fin, RGB(253, 255, 255), Couleur1)
StopDrawing()
Next i
For i = 80 To 1 Step -1
StartDrawing(CanvasOutput(0))
Chart(Axex, Axey, Xrayon, Yrayon, 0 , 160, 240, RGB(254, 255, 255),RGB(255, 255, 255))
Chart(Axex, Axey, Xrayon, Yrayon, 0 , Debut - i, Fin, RGB(253, 255, 255), Couleur1)
If i = 1
Chart(Axex, Axey, Xrayon, Yrayon, 0 , 160, 240, RGB(254, 255, 255),RGB(255, 255, 255))
EndIf
StopDrawing()
Next i
Next u
EndProcedure
If OpenWindow(0, 0, 0, 500,500, "Exemple Graphique Chart 3D", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 10, 10, 480, 480)
Axex.l = 205
Axey.l = 225
Xrayon.l = 190
Yrayon.l = 70
Debut.l = 160 - 2 ;retirer 2 unités que pour la couleur de surface soit dans son secteur
Fin.l = 240
For fin = 160 To 240
StartDrawing(CanvasOutput(0))
For i = 1 To 14
Chart(Axex, i+Axey, Xrayon, Yrayon, 0 , Debut, Fin, RGB(0, 100, 171),RGB(100, 0, 170))
Next i
Chart(Axex, Axey, Xrayon, Yrayon, 0 , Debut, Fin, RGB(0, 0, 226),RGB(0, 0,225))
StopDrawing()
Delay(15)
Next fin
Axex = 235
Axey = 220
Xrayon = 196
Yrayon = 70
Debut = 242 - 2 ;retirer 2 unités que pour la couleur de surface soit dans son secteur
Fin = 315
For fin = 242 To 315
StartDrawing(CanvasOutput(0))
For i = 1 To 16
Chart(Axex, i+Axey, Xrayon, Yrayon, 0 , Debut, Fin, RGB(2, 182, 2),RGB(0, 180, 0))
Next i
Chart(Axex, Axey, Xrayon, Yrayon, 0 , Debut, Fin, RGB(0, 226, 0),RGB(0, 225, 0))
StopDrawing()
Delay(15)
Next fin
Axex = 245
Axey = 245
Xrayon = 220
Yrayon = 72
Debut = -48 - 2 ;retirer 2 unités que pour la couleur de surface soit dans son secteur
Fin = 158
For fin = -48 To 158
StartDrawing(CanvasOutput(0))
For i = 1 To 20
Chart(Axex, i+Axey, Xrayon, Yrayon, 0 , Debut, fin, RGB(225, 181, 0),RGB(225, 180, 0))
Next i
Chart(Axex, Axey, Xrayon, Yrayon, 0 , Debut, fin, RGB(225, 226, 0),RGB(225, 225, 0))
StopDrawing()
Delay(5)
Next fin
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf