2020年4月22日 星期三

欸你過來一下09

一早來就先考期中考(OpenGL必背10函式)
老師很貼心地幫我們做了練習的網站
由衷的感謝小葉老師。:.゚ヽ(*´∀`)ノ゚.:。

今天上課的主題是 glu/glut 函式

改變變數,物件也會跟著變喔


---------------------------------------------------------------
之前教過的自己做方塊


同時出現2個方塊了(((o(*゚▽゚*)o)))


方塊可以做旋轉了欸ε٩(๑> ₃ <)۶з

///上面忘記先貼上程式碼了(๑•́ ₃ •̀๑)
#include <GL/glut.h>
void myCube()///簡化程式碼用函式
{
    glPushMatrix();///備份矩陣
        glColor3f(1, 0, 0);///紅色
        glScalef(0.5 ,0.2 ,0.2);///調大小(要在Push/Pop裡面做)
        glutSolidCube(1);///正方塊
    glPopMatrix();///還原矩陣
}
float angel=0;///轉動角度變數
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glRotatef(angel, 0, 0, 1);///轉動(Z軸)
        myCube();
    glPopMatrix();
    angel++;///每次執行,角度增加
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week09");
    glutIdleFunc(display);///有空idle時,再重畫畫面
    glutDisplayFunc(display);
    glutMainLoop();
}


旋轉的中心點換了喔d(`・∀・)b


T-R-T 轉動做變化ヽ(✿゚▽゚)ノ

#include <GL/glut.h>
void myCube()///簡化程式碼用函式
{
    glPushMatrix();///備份矩陣
        glColor3f(1, 0, 0);///紅色
        glScalef(0.5 ,0.2 ,0.2);///調大小(要在Push/Pop裡面做)
        glutSolidCube(1);///正方塊
    glPopMatrix();///還原矩陣
}
float angel=0;///轉動角度變數
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glColor3f(0, 1, 0);///綠色
    glutSolidCube(0.6);///身體

    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);///把下面轉動中的手,放到右上角
        glRotatef(angel, 0, 0, 1);///轉動
        glTranslatef(0.22, 0, 0);///把要轉動的中心點,放到畫面的中心
        myCube();
    glPopMatrix();
    angel++;///每次執行,角度增加
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week09");
    glutIdleFunc(display);///有空idle時,再重畫畫面
    glutDisplayFunc(display);
    glutMainLoop();
}

沒有留言:

張貼留言