2023年3月16日 星期四

心臓を捧げよ! week05

step1-1


去老師的網站下載windows,data



step1-2


把汽車拉高,並且rotate讓車子向右移動,最後車子比原本位置靠右並以原先位置為中心開始旋轉




step2-1

去codeblocks開新專案week05-1_TRT_translate,並且打開上周教的程式碼,更改z軸,讓茶壺逆時針轉



新增一個綠色茶壺,然後讓原本的旋轉角度增加1.5倍,最後兩個茶壺一個原地旋轉,另一個以逆時鐘旋轉,並且會和第一個茶壺交會

#include<GL/glut.h>
float angle =0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1,0,0);
    glPushMatrix();
        glRotatef(angle,0,0,1);
        glTranslatef(0.8,0,0);
        glutSolidTeapot( 0.3 );
    glPopMatrix();

    glColor3f(0,1,0);
    glPushMatrix();
        glTranslatef(0.8,0,0);
        glRotatef(angle*1.5,0,0,1);
        glutSolidTeapot( 0.3 );
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutMainLoop();
}



step2-2

打開proccecing,執行程式碼並畫出身體及手臂,改變手臂的中心點移動到身體中心,讓手臂繞著身體中心旋轉

step3-1

打開codeblocks,建立新專案,week05-2_TRT_robot
用week05-1的程式修改




做一個機械手臂
再複製程式碼並更改座標,變成左上角跟右上角都有手臂旋轉

#include<GL/glut.h>
float angle =0;
void mycube()
{
    glPushMatrix();
        glScalef(0.5,0.2,0.2);
        glutSolidCube(1);
    glPopMatrix();
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1,1,1);
    glutSolidCube(1);
        glPushMatrix();
        glTranslatef(0.5,0.5,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.25,0,0);
        glColor3f(0,1,0);
        mycube();
        glPopMatrix();

        glPushMatrix();
        glTranslatef(-0.5,0.5,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.25,0,0);
        glColor3f(0,1,0);
        mycube();
        glPopMatrix();
    glutSwapBuffers();
    angle++;
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week05");
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutMainLoop();
}






沒有留言:

張貼留言