下載win、data
跑Transformation.exe 右鍵切換Swap(也可按S鍵切換)
右下ToDraw開始畫圖
myDrawObject(0);移到下面的glTranslatef(0,0,0);下面
按住glTranslatef(0,0,0);可以拖曳圖案
3.茶壺逆時鐘一直旋轉
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle, 0, 0, 1);///旋轉
glTranslatef(0.4, -0.07, 0);///往右下移動
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc,char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
4.紅色茶壺掛在白茶壺上旋轉
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 1, 1);///白色
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0, 0, 0);///下面旋轉中的東西掛在某處
glRotatef(angle, 0, 0, 1);///旋轉
glTranslatef(0.2, 0, 0);///往右下移動
glColor3f(1, 0, 0);///紅色
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc,char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
5.揮舞"手臂"
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 1, 1);///白色
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.3, 0, 0);///下面旋轉中的東西掛在某處
glRotatef(angle, 0, 0, 1);///旋轉
glTranslatef(0.2, 0, 0);///往右下移動
glColor3f(1, 0, 0);///紅色
glutSolidTeapot(0.2);
glPushMatrix();
glTranslatef(0.2, 0, 0);
glRotatef(angle, 0, 0, 1);///旋轉
glTranslatef(0.2, 0, 0);///往右下移動
glColor3f(1, 0, 0);///紅色
glutSolidTeapot(0.2);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc,char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}










沒有留言:
張貼留言