老師很貼心地幫我們做了練習的網站
由衷的感謝小葉老師。:.゚ヽ(*´∀`)ノ゚.:。
今天上課的主題是 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();
}
改變變數,物件也會跟著變喔
---------------------------------------------------------------
之前教過的自己做方塊
同時出現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();
}
沒有留言:
張貼留言