2019年4月25日 星期四

~~~

電腦圖學
(1)期中考:OpenGL必背10函式
(2)複習:移動,旋轉,縮放
(3)主題:T-R-T旋轉
              (改變旋轉軸)
(4)主題:glut
TODO:下載範例
1.進入http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/ ,下載data win32 glut32.dll







2.將windows解壓縮,再把解壓縮的data和glut.dll放到windows的解壓縮檔裡面
3.打開transformation.exe檔案

Transformation.exe自轉 vs. 公轉
glTranslatef(...)  
glRotate(...)                        

glRotatef(...)                         
glTranslatef(...)
4.打開https://www.transmissionzero.co.uk/software/freeglut-devel/下載

freeglut 3.0.0 MinGW Package

5.將freeglut解壓縮,把裡面的libfreeglut.a複製,更改檔名為libglut32.a
6.打開codeblocks,複製freeglut的位址貼上就可以打開
7.打上程式碼就可以看到甜筒與茶壺年在一起,且甜筒可以旋轉
程式碼:
#include <GL/glut.h>

float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);///這是往上移動的茶壺
        glutSolidTeapot(0.3);///This is a Teapot
    glPopMatrix();
    glPushMatrix();

    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.50,0.625,0);///(3)把它掛在你要放的地方
        glRotatef(angle,0,0,1);///(1)先有個轉動,但怪怪的
        glTranslatef(0.6,0,0);///(2)要更早去移動旋轉中心

        glRotatef(-90,0,1,0);///(0)轉動90度的Cone
        glutSolidCone(0.2, 0.6 , 30,30);///直直的Cone
    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("week10 TRT");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}

沒有留言:

張貼留言