2022年5月10日 星期二

week12

 這周一開始我們先打開transformation.exe

老師教我們transformation.exe裡的各行程式代表的是什麼意思


然後我們到https://120.125.80.50/GL/opengl_TRT_demo.html

我們可以在左邊畫出圖形,然後在右邊調整程式碼的順序

要把想要旋轉的物件放在rotatef下面
然後按空白鍵就會開始旋轉,可以看到右上角的angle一直在變動
而圖形就會開始轉圈

然後老師講解下周的考試題目
程式碼六行
glPushMatrix();
    glTranslatef(-0.5,-0.9,0);
    glRotatef(-45,0,0,1);
    glTranslatef(-0.8,0.9,0);
    gldrawHand();
glPopMatrix();



接著先打開codeblocks

老師先教我們如何讓茶壺原地旋轉


#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.3);
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}
int main(int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week12");

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}

再來是要利用T-R-T讓小手臂對任意軸轉動
#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,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.2);
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}
int main(int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week12");

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}

然後就可以照這個模式畫出更多茶壺


也可以做出左手





沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...