Publié : mar. 09/déc./2008 17:54
Voila un sous programme qui ne fonctionne pas et qui me fait penser que je ne maitriserai jamais les fenêtres.
Après avoir taillé une dent par "génération" avec le programme qui la fait tangenter une crémaillère en translation, j'ai ajouté ce petit sous-programme voir visualiser à la fin du travail la roue complète reconstituée et pas seulement une dent. Ce sous-programme plante. Par contre si j'inhibe la grande boucle For Next, celle de 1 to N, il tourne et m'affiche la fenêtre, en ne montrant qu'une seule dent bien sûr).
(désolé je ne sais pas insérer un programme PB)
de Dobro :
Réedite ce message (bouton Editer)
pour voir comment j'ai ajouté les balises de code [ code] et [ /code]
il te faut absolument utiliser ces balises pour présenter tes codes sur le Forum Merci ...
Après avoir taillé une dent par "génération" avec le programme qui la fait tangenter une crémaillère en translation, j'ai ajouté ce petit sous-programme voir visualiser à la fin du travail la roue complète reconstituée et pas seulement une dent. Ce sous-programme plante. Par contre si j'inhibe la grande boucle For Next, celle de 1 to N, il tourne et m'affiche la fenêtre, en ne montrant qu'une seule dent bien sûr).
(désolé je ne sais pas insérer un programme PB)
de Dobro :
Réedite ce message (bouton Editer)
pour voir comment j'ai ajouté les balises de code [ code] et [ /code]
il te faut absolument utiliser ces balises pour présenter tes codes sur le Forum Merci ...
Code : Tout sélectionner
ReconstitutionRoue:
If OpenWindow(0, 500, 100, 800, 800, "2D Drawing Test")
If CreateImage(0, 800, 800)
If StartDrawing(ImageOutput(0))
FrontColor(RGB(255,0,0)) ; Finally, red lines
;Dessin axes de coordonnées
LineXY(400,0,400,800,RGB(255,0,0))
LineXY(0,400,800,400,RGB(255,0,0))
;DESSIN DE LA ROUE COMPLETE;
For n=1 To N ;Boucle reconstitution des N dents
ArotRE0=ArotRE0+2*pi/N
For i=1 To DimTE ;Recalcul de tous les rayons
ArotRE(i)=ArepRE(i)+ArotRE0
Next
For i=1 To DimTE ;Calcul coordonneés paramétriques de tous les rayons
xCE.f=0
ArotRE(i)=ArepRE(i)+ArotRE0
xRE(i)=xCE+LRE(i)*Cos(ArotRE(i))
yRE(i)=yCE+LRE(i)*Sin(ArotRE(i))
Next
For i=1 To 201 ;Mise à l'échelle des pixels de la fenêtre
xRE(i)=40*xRE(i)+400
yRE(i)=-40*yRE(i)+400
Next
For k=1 To DimTE-1 ;Dessin des segments qui lient les extrémités des rayons
LineXY(xRE(k),yRE(k),xRE(k+1),yRE(k+1), RGB(0,255,0))
Next
For k=1 To DimTE ;Dessin de tous les rayons
LineXY(xRE(k),yRE(k),400,40*m*N/2+400, RGB(0,255,0))
Next
Next
DrawingMode(#PB_2DDrawing_Transparent)
BackColor(RGB(0,155,155)) ; Change the text back and front colour
FrontColor(RGB(255,255,255))
StopDrawing()
EndIf
EndIf
ImageGadget(0, 0, 0, 0, 0, ImageID(0))
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow ; If the user has pressed on the window close button
EndIf
Return