本周繼上星期所學,延伸出更進階的程式碼如下
1.
程式碼:
#include <GL/glut.h>
#include <stdio.h>
void display(){
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();}
void mouse( int button, int state,int x,int y){
printf("button:%d state:%d x:%d y:%d\n",button,state,x,y);}
int main(int argc,char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week04 mouse");
glutDisplayFunc( display );
glutMouseFunc(mouse);
glutMainLoop();}
2.
程式碼:
#include <GL/glut.h>
#include <stdio.h>
void display(){
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();}
void mouse( int button, int state,int x,int y){
if( state==GLUT_DOWN){如果mouse按下去,印出程式碼
printf(" glVertex3f((%d-150)/150.0,-(%d-150)/150.0,0);\n",x,y);}
printf("button:%d state:%d x:%d y:%d\n",button,state,x,y);}
int main(int argc,char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week04 mouse");
glutDisplayFunc( display );display顯示函式
glutMouseFunc(mouse);TODO:(1)mouse滑鼠的程式
glutMainLoop();
}
3.
程式碼:#include <GL/glut.h>
#include <stdio.h>
float teapotX=0, teapotY=0;茶壺的座標
void display(){
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();矩陣備份
glTranslatef(teapotX,teapotY,0);照著座標,移動
glutSolidTeapot(0.3);
glPopMatrix();矩陣還原
glEnd();
glutSwapBuffers();}
void motion( int x,int y){
teapotX=(x-150)/150.0;換算座標
teapotY=(x-150)/150.0;
display();}
int main(int argc,char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week04 mouse");
glutDisplayFunc( display );display顯示函式
glutMotionFunc(motion);TODO:(1)mouse滑鼠的函式
glutMainLoop();}準備mouse motion移動時的函式
4.
5.
透過github架設一個屬於自己的網站!





沒有留言:
張貼留言