今天剛上課因為人數太少所以老師介紹了萬花尺http://jsyeh.org/processing/spirograph/
有點酷。
=========================================================================
今天第一個教的東西是上次上課的內容
(r是重設,s是交換第一行和第二行程式碼)
把Rotate那行放最上面就可以按空白見旋轉圖形了
=========================================================================
這是期中考考題的一部分

=========================================================================
老師用了上一堂課的程式碼(畫線的)來示範如何讓圖形轉動
按住空白鍵就可以轉動了!!
程式碼 :
#include <GL/glut.h>
int N=0,vx[3000],vy[3000];
float angle=0;///TODO
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();///TODO: 備份矩陣
glRotated(angle,0,0,1);///TODO: 旋轉,對Z軸轉
glBegin(GL_LINE_LOOP);
for(int i=0;i<N;i++){
glVertex2f( (vx[i]-150)/150.0,-(vy[i]-150)/150.0);
} ///減一半,在除一半 減一半,在除一半,加負號
glEnd();
glPopMatrix();///TODO: 還原矩陣
glutSwapBuffers();///交換兩倍的buffers
}
void keyboard(unsigned char key,int x,int y)
{
angle++;///TODO:
display();///TODO:
}
void motion (int x ,int y)
{ ///TODO2: mouse motion 再拖動他
vx[N]=x; vy[N]=y; ///把vx,vy的存起來
N++;
display();///邊動mouse motion,邊畫display()
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///(1)GLUT初始設定
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
glutCreateWindow("08160830");///(3)開視窗
glutDisplayFunc(display);///(4)等一下要顯示的函式
glutKeyboardFunc(keyboard);///TODO:按按鍵,他就會轉動!!!!!!!!!
glutMotionFunc( motion);///等一下要顯示的函示
glutMainLoop();///TODO :我們註冊mouse函式
}







沒有留言:
張貼留言