1.Transformation.exe T移動 R轉動 右鍵交換TR
TR=自轉RT=公轉
2. 120.125.80.50/GL OPENGL TRT函式練習
ctrl+r => 重載 空白鍵執行?
T => 上下左右移
R => 旋轉
T => 旋轉軸心放中心
next week
glPushMatrix();
glTranslatef( -0.5 , -0.9 , 0 );
glRotatef( -45 , 0 , 0 , 1 );
glTranslatef( -0.8 , -0.9 , 0 );
drawhand();
glPopMatrix();
3-1旋轉茶壺
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot(0.6);
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc ,char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week12 TRT");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
3-2 手臂茶壺
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.8,0.2,0.6);
glutSolidTeapot(0.6);
glPushMatrix();
glTranslatef(0.3,0,0);///移到右邊
glRotatef(angle,0,0,1);///旋轉
glTranslatef(0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc ,char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week12 TRT");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
3-3 手臂+手肘
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.8,0.2,0.6);
glutSolidTeapot(0.6);
glPushMatrix();
glTranslatef(0.3,0,0);///移到右邊
glRotatef(angle,0,0,1);///旋轉
glTranslatef(0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPushMatrix();
glTranslatef(0.3,0,0);///移到右邊
glRotatef(angle,0,0,1);///旋轉
glTranslatef(0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc ,char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week12 TRT");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
3-4 兩邊手臂
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.8,0.2,0.6);
glutSolidTeapot(0.6);
glPushMatrix();
glTranslatef(0.3,0,0);///移到右邊
glRotatef(angle,0,0,1);///旋轉
glTranslatef(0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPushMatrix();
glTranslatef(0.3,0,0);///移到右邊
glRotatef(angle,0,0,1);///旋轉
glTranslatef(0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.3,0,0);///移到左邊
glRotatef(-angle,0,0,1);///旋轉
glTranslatef(-0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPushMatrix();
glTranslatef(-0.3,0,0);///移到左邊
glRotatef(-angle,0,0,1);///旋轉
glTranslatef(-0.3,0,0);///旋轉軸放中心
glColor3f(0.9,0.6,0.4);
glutSolidTeapot(0.3);///第二茶壺(手臂)
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}
int main(int argc ,char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week12 TRT");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}

沒有留言:
張貼留言