展示萬花尺
效果影片 https://www.youtube.com/watch?v=ELrkairuidA
------------------------------------------------------------------------------------------
理解GLUT的程式碼讀取模式
1.利用Transformation實作移動轉動先後的差異
1-1
1-2
GLUT程式碼是由下往上讀的!!
先移動 旋轉點是固定不動的
所以才會造成先移動會繞著中心轉的現象
先旋轉 旋轉點會跟著物體移動
2.可以利用 120.125.80.50/GL 裡的 OpenGL T-R-T 練習
(同樣的網站裡有期中考題目練習喔)
------------------------------------------------------------------------------------------
畫圖並旋轉
1.到GitHub下載week04-2
2.新增全域變數float angle=0;
#include <GL/glut.h>///使用GLUT外掛
#include <stdio.h>
int n=0,vx[3000],vy[3000];
float angle=0;
3.新增程式碼glPushMatrix();
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glPushMatrix();///備分矩陣
glRotatef(angle,0,0,1);
glBegin(GL_LINE_LOOP);
for(int i=0;i<n;i++)///用for畫出來
{
glVertex2f((vx[i]-150)/150.0,-(vy[i]-150)/150.0);///座標換算
}
glEnd();
glPopMatrix();///還原矩陣
glutSwapBuffers();///更新畫面
}
4.新增函式void keyboard(unsigned char key,int x,int y)
void keyboard(unsigned char key,int x,int y)
{
angle++;
display();
}
5.新增程式碼glutKeyboardFunc();
int main(int argc, char *argv[])///main()函式
{
glutInit(&argc, argv);///Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///Init初始化Display功能
glutCreateWindow("07160325 小乖的畫");///建立自訂名稱的GLUT視窗
glutDisplayFunc(display);///準備display()函式
glutKeyboardFunc(keyboard);///按鍵盤呼叫keyboard函式
glutMotionFunc(motion);///按滑鼠呼叫motion函式
glutMainLoop();///主要函式
}
按下鍵盤空白鍵就會旋轉 .




沒有留言:
張貼留言