Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rotacja sześcianu terminal

Ostatnio zmodyfikowano 2022-12-26 18:02
Autor Wiadomość
bbogdan1995
Temat założony przez niniejszego użytkownika
Rotacja sześcianu terminal
» 2022-12-26 04:46:34
Witam mam za zadanie napisać rotację szescianu w terminalu.
Zdefiniowałem już wierzchołki, teraz powinieniem zabrać się za kalkulacje rotacji i projekcji.. i leżę.
Chodzi mi o funkcję rotate.
Podzielicie się kodem na rotację?

C/C++
vec3f v1, v2, v3, v4, v5, v6, v7, v8;
vec3f c1, c2, c3;

// CUBE FACE
v1 = vec3f( - 500, - 500, - 500 );
v2 = vec3f( 500, - 500, - 500 );
v3 = vec3f( 500, 500, - 500 );
v4 = vec3f( - 500, 500, - 500 );

// CUBE BACK
v5 = vec3f( - 500, - 500, 500 );
v6 = vec3f( 500, - 500, 500 );
v7 = vec3f( 500, 500, 500 );
v8 = vec3f( - 500, 500, 500 );

c1 = vec3f( 48, 128, 48 );
c2 = vec3f( 128, 48, 48 );
c3 = vec3f( 48, 48, 128 );

/* DEKLARACJA ŚCIAN - TRÓJKĄTÓW */

// rotated points
vec2f r1, r2, r3;
float x, y, z; // kąty rotacji w radianach
r1 = rotate( t->v1, x, y, z );
r2 = rotate( t->v2, x, y, z );
r3 = rotate( t->v3, x, y, z );

/* RYSOWANIE ŚCIAN - drawTriangleSolid(r1, r2, r3, color); */

Funkcja rotate na stan obecny:
C/C++
vec3f rotate( vec3f v, float x = 0, float y = 0, float z = 0 )
{
   
float rad = 0;
   
// rotate chyba dziala tylko na os ++ czyli liczby x+, y+
   
rad = x;
   
v.y = cos( rad ) * v.y - sin( rad ) * v.z;
   
v.z = sin( rad ) * v.y + cos( rad ) * v.z;
   
   
rad = y;
   
v.x = cos( rad ) * v.x + sin( rad ) * v.z;
   
v.z = - sin( rad ) * v.x + cos( rad ) * v.z;
   
   
rad = z;
   
v.x = cos( rad ) * v.x - sin( rad ) * v.y;
   
v.y = sin( rad ) * v.x + cos( rad ) * v.y;
   
   
return v;
}
P-179833
pekfos
» 2022-12-26 18:02:56
Transformacje w 3D są realizowane przez mnożenie macierzy. Kurs OpenGL opisuje matematykę
Definiowanie sceny 3D Rozdział 3. Modyfikacja obszaru renderingu, rzutowanie prostokątne, rzutowanie perspektywiczne, położenie obserwatora, 5 przykładowych programów. (lekcja)
Przekształcenia geometryczne Rozdział 4. Obrót, skalowanie, przesunięcie, mnożenie macierzy, ładowanie macierzy, składanie przekształceń, bryły w bibliotece GLUT (kula, sześcian, stożek, torus, dwunastościan, czajnik, ośmiościan, czworościan, dwudziestościan), operacje na stosie macierzy, stos macierzy modelowania; przeliczenia współrzędnych w przestrzeni widoku na współrzędne w przestrzeni okna i odwrotnie; obsługa myszki oraz dwa przykładowe programy. (lekcja)
P-179834
« 1 »
  Strona 1 z 1