2021年5月26日 星期三

築損 Week14

 第1部份

將上週程式進行講解

執行結果


-----------------------------------------------------------------------------------------------------------------------------

第1部份

timer

codeblocks開啟新專案

將原本示範程式複製下來

全刪掉後

再打上基本的

glurSolidSphere(0.3,30,30) 實心圖

glutWireSphere(0.3,30,30) 線框圖

加上timer函式

void timer(int t)

{

    glClearColor(1,0,0,0);

    display();

}

經過三秒背景變紅色

新增

glutTimerFunc(30,timer,t+1);

加上旋轉

angle++;

三秒後不只背景變紅色

圖案也跟著旋轉

設diff=2;

if(angle>90) diff=-2;

if(angle<0)  diff=+2;

angle+=diff

就會轉到90度時逆時鐘旋轉

轉到0時會往順時鐘轉

新稱手臂函式

void drawArm1()

{

    glPushMatrix();

        glScalef(1,0.5,0.5);///變細長

        glColor3f(0,1,0);

        glutSolidCube(0.2);///綠色手臂

    glPopMatrix();

}

把線框圖換成白色的身體

glutSolidCube(0.4);///白色身體

加上手臂

glPushMatrix();

            glTranslatef(-0.2,0.2,0);///掛上肩膀

            glRotatef(angle,0,0,1);///轉動

            glTranslatef(-0.1,0,0);///移動到中間

            drawArm1();///綠色手臂

glPopMatrix();

一樣三秒後才執行

執行結果



















-----------------------------------------------------------------------------------------------------------------------------

第0部份


執行結果


-----------------------------------------------------------------------------------------------------------------------------

沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...