文档介绍:学习文档 仅供参考
计
算
机
图
形
学
实 验 指 导 书
学号:1441901105
:谢卉
学习文档 仅供参考
实验一:图形的几何变换
实验学时:4学时
实验类型:验证
实h);
glVertex2f(+width,+highth);
glEnd();
glFlush ( );
}
void mySpecialKeyboard(int key, int x, int y)
{
if(key==GLUT_KEY_RIGHT)
width+=5;
if(key==GLUT_KEY_LEFT)
width-=5;
学习文档 仅供参考
if(key==GLUT_KEY_UP)
highth+=5;
if(key==GLUT_KEY_DOWN)
highth-=5;
glutPostRedisplay();
}
void myKeyboard(unsigned char key, int x, int y)
{
if(key == 'c' || key == 'C')
exit(0);
glutPostRedisplay();
}
void mymouse(int button,int state,int x,int y)//鼠标控制缩放
学习文档 仅供参考
{
if(state==GLUT_DOWN)
{
if(button==GLUT_LEFT_BUTTON)
{
glScalef(,,);
display();
}
else if(button==GLUT_RIGHT_BUTTON)
{
glScalef(,,);
display();
}
glutPostRedisplay();//重新调用绘制函数
}
return;
}
void main (int argc, char** argv)
{
glutInit (&argc, argv);
学习文档 仅供参考
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition (50, 50);
glutInitWindowSize (600, 600);
glutCreateWindow ("方向键控制平移,鼠标控制缩放");
init ( );
glutDisplayFunc (display);
glutSpecialFunc( mySpecialKeyboard);
glutMouseFunc(&mymouse);
glutKeyboardFunc( myKeyboard);
glutMainLoop ( );
}
旋转
#include""
#include <GL/>
#include <>
#include""
学习文档 仅供参考
#define DEG_TO_RAD //角度转为弧度的参数,即 2*PI/360
float theta=; //直线与X轴正方向的夹角
float length=; //直线的长度
float x=, y=; //直线的第一个端点
void init (void)
{
glClearColor (, , , );
glMatrixMode (GL_PROJECTION);
gluOrtho2D (, , , );
}
void display (void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (, , );
glBegin (GL_POLYGON);
glVertex2f (x, y);
gl