本周主題:T.R.T 旋轉 (改變旋轉軸)
1.打開Transformation
註:右鍵可以更改Rotate跟Translate的順序
2.觀察交換後的不同
1. 圖像理解
(1.)Translate在前 (自轉)
(2.)Rotate在前 (公轉) 像是喜酒的大餐桌 物體放在中間時 是自己轉動 但是先把他移動到餐 桌邊後再旋轉就看起來像是物體在餐桌邊跟著旋轉
2.陣理解矩
每個移動跟旋轉或縮放都是一個4x4的矩陣 Popmatrix就是還原矩陣出來 當然 不是只有RTS而已 都可以再繼續加長下去
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0,0.5,0);
glutWireTeapot(0.3);
glPopMatrix();
glPushMatrix();
glTranslatef(0.51,0.63,0);///希望把手移到茶壺上
glRotatef(angle,0,0,1);///手的旋轉
glTranslatef(0.6,0,0);///把旋轉中心(尖) 先移動到畫面中心
glRotatef(-90,0,1,0); ///轉成平的
glutWireCone(0.1,0.6,10,10);
glPopMatrix();
glutSwapBuffers();
}
void motion(int x,int y)
{
angle=x;
display();
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("weeEEEEEEEEE");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
參考:https://www.itread01.com/p/50364.html
沒有留言:
張貼留言