Skocz do zawartości

Zablokowane Obrót brył 3d


Rekomendowane odpowiedzi

No mam takie pytanko:

Czy można zrobić tak, aby bryły 3d(w większości ellipsoidy) obracały się wokół osi(z) jednej głównej bryły. Chodzi tu o tylko 4 kierunki(0, 90, 180, 270). Niestety funkcje d3d_transform_add_rotation_z() i d3d_transform_set_rotation_z() nie zdają egzaminu bo obracają widokiem(zresztą wtedy to cały ekran mi miga).

Odnośnik do komentarza
Udostępnij na innych stronach

Użyj d3d_transform_set_identity przed ustawianiem obrotów i po obrotach.

Niestety. W takim wypadku obraca mi się nie wiadomo gdzie. Tzn. znika. Raz udało mi się go zauważyć gdzieś zupełnie poza swoim x i y obróconego, z tymże czy da się obracać tak normalnie(w miejscu)?

DRAW:

d3d_transform_set_identity();
d3d_transform_set_rotation_z(dir);
d3d_draw_ellipsoid(x-4,y-4,z+30,x+4,y+4,z+height,htex,1,1,24);
d3d_draw_ellipsoid(x-4,y-8,z+16,x+4,y+8,z+32,ctex,1,1,6);
d3d_draw_cylinder(x-4,y-10,z,x+4,y-2,z+16,ltex,1,1,1,12);
d3d_draw_cylinder(x-4,y+10,z,x+4,y+2,z+16,ltex,1,1,1,12);
d3d_draw_cylinder(x-2,y-12,z+16,x+2,y-8,z+32,atex,1,1,1,12);
d3d_draw_cylinder(x-2,y+12,z+16,x+2,y+8,z+32,atex,1,1,1,12);
d3d_transform_set_identity();

Po nacisnięciu strzałek mam zmianę zmiennej dir na:

left(tak wychodzi chłopek) 0

down 90

right 180

up 270

EDIT:

Próbowałem też z d3d_transform_set_translation(), ale też kicha, bo bryły nadal pojawiają się w złym miejscu(zazwyczaj poza widokiem, oczywiście oprócz kątu 0). Wklepując komendę dir+=1 w drawie zauważyłem, że objekt porusza się względem jakiegoś innego punktu(sądze, że względem: x=0,y=0,z=0). Plx help.

EDIT2:

Z d3d_trasform_set_translation to widok mam na punkt 0,0,0, a ziom się obraca jak wczesniej.

EDIT3:

A jednak sobie poradziłem, tylko, że pojawiły sie nowe problemy. Dzieki Tymon za naprowadzenie na odpowiednią część helpa.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...