(1)主題:mouse motion函式
#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 y:%d\n", button, state, x,y);///用滑鼠點來顯示座標
}
int main(int argc, char** argv)///也可以打*argv[]
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week04 mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
如下圖:
座標程式碼:
#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 ){///如果滑鼠按下去,印出程式碼
printf(" glVertex3f((%d-150)/150.0, -(%d-150)/150.0, 0);\n", x, y);///印出來
}
}
int main(int argc, char** argv)///也可以打*argv[]
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week04 mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
如下圖:
(2)主題: 移動、旋轉、放大縮小
glTranslatef(x, y, z);
glRotatef( angle, x, y, z);
glScalef(x, y, z);
以下是有關旋轉的原始示範視窗:
上圖是以Z軸座標進行中心點的旋轉
沒有留言:
張貼留言