
réinventé la roue c'est lourdingue...
Code : Tout sélectionner
matrice(0,0) = Cos(Za)*Cos(Ya)
matrice(1,0) = Sin(Za)*Cos(Ya)
matrice(2,0) = -Sin(Ya)
matrice(0,1) = Cos(Za)*Sin(Ya)*Sin(Xa) - Sin(Za)*Cos(Xa)
matrice(1,1) = Sin(Za)*Sin(Ya)*Sin(Xa) + Cos(Xa)*Cos(Za)
matrice(2,1) = Sin(Xa)*Cos(Ya)
matrice(0,2) = Cos(Za)*Sin(Ya)*Cos(Xa) + Sin(Za)*Sin(Xa)
matrice(1,2) = Sin(Za)*Sin(Ya)*Cos(Xa) - Cos(Za)*Sin(Xa)
matrice(2,2) = Cos(Xa)*Cos(Ya)
Alors tu n'as plus qu'a te taper tout le FAQ du developpez.com, en sachant que si tu veux faire un peuOllivier a écrit :Je veux absolument comprendre le mécanisme qui manque et ça,
c'est du préfa que je ne digère vraiment pas! (Sans critiquer les auteurs qui,
à mon avis ont un bulbe supplémentaire greffé derrière l'oreille)
Code : Tout sélectionner
InitSprite()
InitKeyboard()
OpenScreen(1024, 768, 32, "x")
;***********
R.F = 100.0
Xtheta.F = 0.0
Ytheta.F = 0.0
Ztheta.F = 0.0
Ttheta.F = 0.0
;***********
Repeat
StartDrawing(ScreenOutput() )
Box(0, 0, 1024, 768, #Black)
Vxx.F = Cos(Ztheta)
Vxy.F = -Sin(Ztheta)
Vyx.F = Cos(Ztheta + #PI / 2.0)
Vyy.F = -Sin(Ztheta + #PI / 2.0)
Line(512, 384, Vxx * 20.0, Vxy * 20.0, #Blue)
Line(512, 384, Vyx * 20.0, Vyy * 20.0, #Blue)
For i = 0 To 359
; MaJ référentiel Vecteur x et Vecteur y
X.F = #PI * i / 180.0
Tx.F = Cos(X) * Cos(Ytheta) * 100.0
Ty.F = Sin(X) * 100.0
Ex.F = Vxx * Tx + Vxy * Ty
Ey.F = Vxy * Tx + Vyy * Ty
;Trace vecteur E
Plot(512 + Ex, 384 + Ey, #Blue)
If Abs(X - Xtheta) < 0.01
Line(512, 384, Ex, Ey, #White)
Box(511 + Ex, 383 + Ey, 3, 3, #White)
EndIf
Next
Xtmp = Xtheta * 180 / #PI
Xtmp % 180
DrawText(0, 0, Str(Xtmp), #White, #Black)
Ytmp = Ytheta * 180 / #PI
Ytmp % 180
DrawText(0, 16, Str(Ytmp), #White, #Black)
ZTmp = (Ztheta * 180 / #PI)
Ztmp % 180
DrawText(0, 32, Str(Ztmp), #White, #Black)
DrawText(0, 48, "Utilisez les 4 flèches de direction et PageUp, PageDown pour modifier x, y, et z")
StopDrawing()
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_PageUp)
Ztheta + 0.04
EndIf
If KeyboardPushed(#PB_Key_PageDown)
Ztheta - 0.04
EndIf
If KeyboardPushed(#PB_Key_Up)
Xtheta + 0.04
If Xtheta > 2.0 * #PI
Xtheta - 2.0 * #PI
EndIf
EndIf
If KeyboardPushed(#PB_Key_Down)
Xtheta - 0.04
If Xtheta < 0.0
Xtheta + 2.0 * #PI
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
Ytheta + 0.04
EndIf
If KeyboardPushed(#PB_Key_Right)
Ytheta - 0.04
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Rassure toi, personne n'a la science infuse, et c'est y allant a taton,Ollivier a écrit :Excuse-moi Tmyke. Je débarque un peu après des heures de réaction en chaîne dans le crâne. Il faut que je fasse une pause, question priorité de programmation, sinon il va y avoir un laissé pour compte à qui je dois un programme dans un autre domaine.
Mais je suis déterminé. Si ce passage est quasi-obligatoire, je le ferai. C'est évident. Nul n'a la science infuse, et moi le 1er. En fait, soit on a un très bon niveau dans un domaine appliqué (ici, les maths, la trigo) et l'on transcrit sa théorie en programmation. Soit on est comme moi, à jongler avec les rudiments niveau Bac, mais à maîtriser assez correctement la création d'algorithmes avec le peu qu'on a.