回顧上週的移動跟旋轉,開啟transformation.exe。
先移動再旋轉,會發現他是自轉。
先按滑鼠右鍵,選swap translate再移動,然後旋轉會發現他是公轉狀態。
程式碼從後面往前跑,這個框框代表車子。
車子變胖。
車子變胖並移動到右邊。
車子變胖移動到右邊以中心轉動。
#include <GL/glut.h>
#include <stdio.h>
float vx[2000], vy[2000];///準備一堆頂點,等一下要畫!!介於-1~+1
int N=0;///有N個頂點
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空
glBegin(GL_LINE_LOOP);
for(int i=0;i<N;i++){
glVertex2f( vx[i],vy[i]);
}
glEnd();
glutSwapBuffers();
}
void mouse(int buttin, int state, int x, int y)
{
}
void motion (int x,int y)
{
printf("%d %d\n",x,y);///把頂點記起來
vx[N] = (x-150)/150.0;///很像這樣的寫法,記錄起來
vy[N] = -(y-150)/150.0;
N++;
display();
}///減一半,再減一半,y加負號
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160520石雅慈"); //(視窗的名稱)
glutDisplayFunc(display);//display顯示涵式
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();//準備mouse motion 移動時的涵式
}
(執行結果如下圖)
程式從最下面往上跑
1.藍色車子
2.高高的
3.自轉中的
4.把以下整個移到右邊
全部看是藍色車子高高的自轉中的把以下整個移到右邊
期中考 網址120.125.80.50/GL 或120.125.80.50/gl
我們可以利用這個網站練習期中考題目~











沒有留言:
張貼留言