2022年5月9日 星期一

xyt week12

 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 

嘗試老師自己做的程式

3.新增一個new  file 「week12_TRT」

(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;
}
```

(2)1白色茶壺結合紅色茶壺
```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;
}
```

沒有留言:

張貼留言