week12
1.到 https://jsyeh.org/3dcg10/ 下載windows.zip 、 data.zip,解壓縮
(1)執行 transformation 並查看差別
```cpp 右邊有在轉動的車子
glTranslatef( 0.8, 0.0, 0.0 );
glRotate( angle, 0, 1, 0 );
```
```cpp 車子在繞著中心點旋轉
glRotate( angle, 0, 1, 0 );
glTranslatef( 0.8, 0.0, 0.0 );
```
(2)執行 transformation 並查看差別
2.到 https://120.125.80.50/GL/opengl_TRT_demo.html
嘗試老師自己做的程式
(1)複製之前的白色茶壺程式碼並更改旋轉軸
```c
#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_DOUBLE | GLUT_DEPTH );
glutCreateWindow("week12 TRT");
glutIdleFunc( display );
glutDisplayFunc( display );
glutMainLoop();
return 0;
}
```
```c
#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.2, 0 , 0);///把下面旋轉中的物品掛在某處
glRotatef( angle, 0, 0, 1 );///旋轉
glTranslatef( 0.2, -0.07, 0 );///往右下移動
glColor3f(1, 0, 0 );///紅色的
glutSolidTeapot( 0.2 );///茶壺
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();
return 0;
}
```



沒有留言:
張貼留言