0.老師介紹:電腦圖學之父 Ivan Sutherland (Sketchpad)
按任一鍵盤顯示其座標
#include <GL/glut.h>///簡化程式
#include<stdio.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前先清理畫面
glColor3f(1,1,0);///設定色彩
glutSolidTeapot(0.3);
glutSwapBuffers();///畫好後換出來
}
void keyboard( unsigned char key, int x,int y)
{
printf("你按下了 %c 在 %d %d 座標\n",key,x,y);
}
int main (int argc, char** argv)
{
glutInit( &argc, argv);///送給glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("第5周程式!");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
加入上次教的Mouse & Motion
#include <GL/glut.h>///簡化程式
#include<stdio.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前先清理畫面
glColor3f(1,1,0);///設定色彩
glutSolidTeapot(0.3);
glutSwapBuffers();///畫好後換出來
}
void keyboard( unsigned char key, int x,int y)
{
}
void mouse( int button, int state,int x,int y)
{
}
void motion(int x,int y)
{
}
int main (int argc, char** argv)
{
glutInit( &argc, argv);///送給glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("第5周程式!");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMotionFunc(motion);
glutMouseFunc(mouse);
glutMainLoop();
}
可用滑鼠拖曳
#include <GL/glut.h>///簡化程式
#include<stdio.h>
float x=0, y=0, z=0;
int oldX=0 ,oldY=0;
void display()
{
glPushMatrix();///備份矩陣
glTranslatef( (x-150)/150.0 ,-(y-150)/150.0 , z);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前先清理畫面
glColor3f(1,1,0);///設定色彩
glutSolidTeapot(0.3);
glPopMatrix();///還原
glutSwapBuffers();///畫好後換出來
}
void keyboard( unsigned char key, int mouseX,int mouseY)
{
}
void mouse( int button, int state,int mouseX,int mouseY)
{
}
void motion(int mouseX,int mouseY)
{
x+=(mouseX-oldX); y+=(mouseY-oldY);
oldX = mouseX; oldY = mouseY;
display();
}
int main (int argc, char** argv)
{
glutInit( &argc, argv);///送給glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("第5周程式!");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMotionFunc(motion);
glutMouseFunc(mouse);
glutMainLoop();
}
.png)
.png)
沒有留言:
張貼留言