2015年3月25日 星期三

02160102 李劭宣 week05

移動的四邊形




#include <GL/glut.h>
float angle=0; void display() { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef(angle,0,1,0); glBegin(GL_POLYGON); glColor3f(1,0,0); glVertex3f(0.1,0.1,0.8); glVertex3f(-0.1,0.1,0.8); glVertex3f(-0.1,-0.1,0.8); glVertex3f(0.1,-0.1,0.8); glEnd(); glPopMatrix(); angle+=0.01; glFlush(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutCreateWindow(""); glutDisplayFunc(display); glutIdleFunc(display); glutMainLoop(); }

滑鼠控制旋轉\\



#include <GL/glut.h> float angle=0; void display() { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef( angle,0,1,0.5); glBegin(GL_POLYGON); glColor3f(1,0,0); glVertex3f(0.1,0.1,0.8); glVertex3f(-0.1,0.1,0.8); glVertex3f(-0.1,-0.1,0.8); glVertex3f(0.1,-0.1,0.8); glEnd(); glBegin(GL_POLYGON); glColor3f(1,1,0); glVertex3f(0.1,0.1,-0.8); glVertex3f(-0.1,0.1,-0.8); glVertex3f(-0.1,-0.1,-0.8); glVertex3f(0.1,-0.1,-0.8); glEnd(); glBegin(GL_QUAD_STRIP); glColor3f(1,1,2); glVertex3f(0.1,0.1,0.8); glVertex3f(0.1,0.1,-0.8); glVertex3f(-0.1,0.1,0.8); glVertex3f(-0.1,0.1,-0.8); glVertex3f(-0.1,-0.1,0.8); glVertex3f(-0.1,-0.1,-0.8); glVertex3f(0.1,-0.1,0.8); glVertex3f(0.1,-0.1,-0.8); glEnd(); glPopMatrix(); angle +=0.01; glFlush(); } int oldX=0; //宣告一個座標 void motion(int x,int y) { angle +=(x-oldX); //利用新座標去舊的得新的角度 oldX=x; } int main(int argc,char **argv) { glutInit(&argc,argv); glutCreateWindow("02160102flight"); glutDisplayFunc(display); glutIdleFunc(display); glutMotionFunc(motion); //移動函示 glutMainLoop(); }




沒有留言:

張貼留言