Chiobio Napisano Marzec 10, 2009 Zgłoś Share Napisano Marzec 10, 2009 Witam:) Celem ćwiczenia jest stworzenie czegoś na wzór wiatraku. #include "obiekty.h" int Rysuj_Wiatrak(GLfloat K, GLfloat R) { for (int i=0; i <= K; i++) { glPushMatrix(); glBegin(GL_TRIANGLES); glRotatef ((360/K)*i , 0.0f, 0.0f, 1.0f); glColor3f (1.0f, 0.3f, 0.0f); glVertex3f (0.0f, 2.0f, 0.0f); glVertex3f (R, 2.0f, 0.0f); glVertex3f (R, 4.0f, 2.0f); glPopMatrix(); glEnd(); glDisable(GL_TRIANGLES); } return 0; // K - ilość trójkątów, czyli "łopat" wiatraka // R - promień wiatraka } Problem jest następujący: "Pierwsza" pętla ma narysować trójkąt. Kolejna ma również podobne zadanie, jednak ma on być już obrócony względem punktu (0.0f, 2.0f, 0.0f), ale tak aby płaszczyzny owych trójkątów były do siebie równoległe. I tak do końca. I tu pojawia się problem. Pomimo, że program się kompiluje, to niestety rysowany jest tylko 1 trójkąt, natomiast kolejny, już po obrocie, nie. Proszę o pomoc:) W złym miejscu napisałem temat - przepraszam! Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Marzec 10, 2009 Zgłoś Share Napisano Marzec 10, 2009 1. glRotatef nie można używać pomiędzy glBegin/glEnd. (nalezy to dac po glPushMatrix() w tym przypadku) 2. glPopMatrix powinno znaleźć się po glEnd a nie przed bo też się tego tam nie używa... 3. GL_TRIANGLES w glDisable nie ma sensu wywal tą linijke nie ma takiego czegoś w openglu Ogólnie radzę poczytać troszkę więcej o openglu bo o stosie macierzy i rysowaniu prymitywów. to tyle jak na razie. www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
Chiobio Napisano Marzec 11, 2009 Autor Zgłoś Share Napisano Marzec 11, 2009 1. glRotatef nie można używać pomiędzy glBegin/glEnd. (nalezy to dac po glPushMatrix() w tym przypadku) 2. glPopMatrix powinno znaleźć się po glEnd a nie przed bo też się tego tam nie używa... 3. GL_TRIANGLES w glDisable nie ma sensu wywal tą linijke nie ma takiego czegoś w openglu Ogólnie radzę poczytać troszkę więcej o openglu bo o stosie macierzy i rysowaniu prymitywów. to tyle jak na razie. Wielkie dzięki! Dopiero zacząłem naukę OpenGL i na pewno doczytam:) Link do komentarza Udostępnij na innych stronach More sharing options...
Chiobio Napisano Marzec 15, 2009 Autor Zgłoś Share Napisano Marzec 15, 2009 Witam:) Dzięki pomocy Spider100 udało mi się zrobić, żeby program rysował łopaty wiatraka. Pojawił się jednak kolejny problem, którego nie mogę rozwiązać. Chcę połączyć kwadratem łopatę 1 z łopatą 2-gą narysowaną po rotacji itd. Wykombinowałem to, co widać w drugiej pętli, a dokładnie coś takiego: glVertex3f (R, 0.0f, 0.0f); glVertex3f (R, 4.0f, 2.0f); glRotatef ((360/K)*(w+1), 0.0f, 1.0f, 0.0f); glVertex3f (R, 0.0f, 0.0f); glVertex3f (R, 4.0f, 2.0f); %lj9'+jjh)zzŻ+(ęór$gWŁęŚ3'3zkŁ-jxŁkjyĄŁ-i0i,Irś+ę-#k*kĄ^śŚŻ+.ę)j0i*ł'!ś,Źjx<Y+Z:n\"^zXh& 0ĘnWŚ6ź).6juzgyh)zvŚźv AzjW3z9{6śĄżr$)I}]ŃŹĄ1ą,1ąH)(Ąą,ŹŹ((ąAĄ5Ń(ąIŃŃ,(ą Ą1}QI%91L((ą ą(ąYŃ(ąYŃĄH(ąYŃĄH((ą(ąA5Ń(((Ąą,ŹŹ((ąAĄ5Ń(ąIŃŃ,(ą Ą1}EUL((ą ą(ąYŃĄH(ąYŃĄH(ąIŃŃ,ĄŹ(ąYŃĄH(ąYŃĄH((ą(ąA5Ń(((Ń) Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.