2022年5月10日 星期二

鹿的電腦圖學筆記week12

 Step01:

1.開啟Transformation.exe

2.Swap交換T,R

3.

glScalef(1.00,1.00,1.00);glBegin();->正常藍色車子


glRotate(100.0,0.00,1.00,0.00);轉動中

glTranslate(0.89,0.00,0.00);移到右邊

Step02:    

myDrawObject(0);畫身體

glPushMatrix();

    glTranslate(0.29,0.31,0);往右上移(身體右上角)

    glRotatef(angle,0,0,1);做旋轉(物件要在該行程式下才會旋轉)

    glTranslatef(-0.3,-0.19,0);往左下移動(讓軸心在中心)

    myDrawObject(1);畫手臂

glPopMatrix();

Step03:

期末考題

glPushMatrix();

    gltranslatef(-0.5,-0.9,0);把T掛到指定位置

    glRotatef(-45,0,0,1);轉動物件角度

    glTranslatef(-0.8,0.9,0);把下面T移到中心點

    drawHand();

glPopMatrix();

Step04:

1.寫入之前程式

#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.2);

    glPopMatrix();

    glutSwapBuffers();

    angle++;

}

int main(int argc,char** argv){

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week12_TRT");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}

3.
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();

4.複製

glPushMatrix();
        glTranslatef(0.2,0,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.2,0,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.2);
 glPopMatrix();
5.重新貼上如下:
glPushMatrix();
        glTranslatef(0.2,0,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.2,0,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.2);
        glPushMatrix();
            glTranslatef(0.2,0,0);
            glRotatef(angle,0,0,1);
            glTranslatef(0.2,0,0);
            glColor3f(1,0,0);
            glutSolidTeapot(0.2);
         glPopMatrix();
 glPopMatrix();
6.複製上方程式,把X軸和angle都改成負數(因為對稱,在反方向)
glPushMatrix();
        glTranslatef(-0.2,0,0);
        glRotatef(-angle,0,0,1);
        glTranslatef(-0.2,0,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.2);
        glPushMatrix();
            glTranslatef(-0.2,0,0);
            glRotatef(-angle,0,0,1);
            glTranslatef(-0.2,0,0);
            glColor3f(1,0,0);
            glutSolidTeapot(0.2);
        glPopMatrix();
glPopMatrix();








沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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