讓圖片轉動起來
1.下載第五周的程式碼
2.修改至這樣(紅色是本周新增程式碼)
#include <GL/glut.h>
float angle=0;
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);///旋轉(角度,x,y,z)
glutSolidCube(1);///畫矩形
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("07160325 小乖的畫");
glutDisplayFunc(display);
glutIdleFunc(display);///一直重新刷新螢幕
glutMainLoop();
}
3.成果展示
4.新增變形,顏色
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);///旋轉(角度,x,y,z)
glScalef(0.5,0.3,0.4);///變形
glColor3f(0,0,1);///顏色
glutSolidCube(1);///畫矩形
glPopMatrix();
glutSwapBuffers();
angle++;
}
5.成果展示
6.新增位移後轉動
void display(void)
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.25,0.25,0);///將正在旋轉的藍色方塊移動
glRotatef(angle,0,0,1);///旋轉(角度,x,y,z)
glTranslatef(0.2,0,0);///移動轉軸
glScalef(0.5,0.2,0.2);///變形
glColor3f(0,0,1);///顏色
glutSolidCube(1);///畫矩形
glPopMatrix();
glutSwapBuffers();
angle++;
}
9.成果展示
10.兩段關節程式碼
void hand()
{
glPushMatrix();
glScalef(0.5,0.2,0.2);///變形
glColor3f(0,0,1);///顏色
glutSolidCube(1);///畫矩形
glPopMatrix();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.25,0.25,0);///將正在旋轉的藍色方塊移動
glRotatef(angle,0,0,1);///旋轉(角度,x,y,z)
glTranslatef(0.2,0,0);///移動轉軸
hand();
glPushMatrix();
glTranslatef(0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.2,0,0);
hand();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;
}
11.成果展示
12.複製一組 對稱 改正負號(程式碼省略)

















沒有留言:
張貼留言