1.下載[data][win32]glut32.dll
2.將[win32]解壓縮
3.將glut32.dll [data] 放入window資料夾 ........才不會閃退
1.複習上週的Translate
Translate上Rotate下 旋轉是正中心旋轉
Rotate上Translate下 旋轉是圓心選轉
2.讀程式碼的技巧
左邊的耳朵貼在左肩(((由下往上讀

Translate上Rotate下 ((((((((自轉
(小葉老師變成,胖胖的車子,在旋轉,之後再移動)
Rotate上Translate下 ((((((((公轉
(小葉老師變成,胖胖的車子,先移動,之後在旋轉)
3.使用Codeblack
記得下載freeglut>lib>glut32
改Translate及Rotate的順序(從自轉變公轉)
4.自制旋轉茶壺

進化成機器茶壺人

#include <stdio.h>
#include <GL/glut.h>
float angle=0;///旋轉角度
void motion(int x,int y)///mouse motion拖著移動時,會叫motion()
{
angle=x;///老師用上週比較差的方法,直接把mouse座標,變轉動角度
glutPostRedisplay();///讀畫面重畫
}
void display()///畫面要display時呼叫這個函式
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///先清畫面
glPushMatrix();///備份矩陣(乾淨的矩陣)
glutSolidTeapot(0.3);///中間的身體
glPushMatrix();///上右手臂
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPushMatrix();///下右手肘
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPopMatrix();
glPopMatrix();
glPushMatrix();///上左手臂
glTranslatef(-0.5,0.15,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.45,-0.08,0);
glutSolidTeapot(0.3);
glPushMatrix();///下左手肘
glTranslatef(-0.5,0.15,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.45,-0.08,0);
glutSolidTeapot(0.3);
glPopMatrix();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
///printf("%.1f\n",angle);
///angle++;
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("05160133_week05 T-R-T");
glutDisplayFunc(display);
glutMotionFunc(motion);
///glutIdleFunc(display);
glutMainLoop();
}

沒有留言:
張貼留言