Obrót tylko wokół X - Pomocy!!

0

Hello.
Mam narysowany szescian i chcialbym aby obracał sie wokół własnej osi X po nacisnieciu przycisku A np. w kierunku wskazowek zegara a po nacisnieciu D przeciwnie. Klawisze umiem sobie zdefiniowac, mysle rowniez ze trzeba bedzie odswiezac obraz co akcje. Ale co z przeksztalceniem wspolrzednych?

0

No to wydaje mi się, że to tak jak obrót po płaszczyźnie wokół punktu, w którym daną płaszczyznę przecina oś X. Do wyznaczania współrzędnych - sin+cos powinno wystarczyć.

0

pobaw sie (poeksperymentuj) a funkcjami trygonometrycznymi (zwlaszcza z sin i cos)...
np: majac punkt P(x,y) i promien r=10
i umieszczajac petle
for i=0 to 360
begin
x:= xsin( rRadToDeg(i) );
y:= ycos( rRadToDeg(i) );
P.x =x;
P.y=y;
Canvas.DrawPoint(P);
end
na ekranie ukaze sie nam piekny okrag :)
zatem jak przeksztalcisz wspolrzedne swojej bryly w podobny sposob, wowczas figura bedzie obracala sie wokol prostej rownoleglej do osi z

0

Macierz przeksztalcenia dla obrotu wokol osi x ma postac

cos(arc) sin(arc) 0 0
-sin(arc) cos(arc) 0 0
0 0 1 0
0 0 0 1

gdzie arc to jest kat obrotu wokol osi ox.

Przemnoz kazdy z wierzcholkow szescianiu przez ta macierz, a uzyskasz to co cie interesuje :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1