文档介绍:-
. z.
计
算
机
图
形
学
实验指导书
**:1441901105
**:谢卉
-
. zhighth);
glVerte*2f(+width,+highth);
glEnd();
glFlush ( );
}
void mySpecialKeyboard(intkey, int*, inty)
{
if(key==GLUT_KEY_RIGHT)
width+=5;
if(key==GLUT_KEY_LEFT)
width-=5;
-
. z.
if(key==GLUT_KEY_UP)
highth+=5;
if(key==GLUT_KEY_DOWN)
highth-=5;
glutPostRedisplay();
}
void myKeyboard(unsignedcharkey, int*, inty)
{
if(key == 'c' || key == 'C')
e*it(0);
glutPostRedisplay();
}
void mymouse(intbutton,intstate,int*,inty)//鼠标控制缩放
{
if(state==GLUT_DOWN)
{
if(button==GLUT_LEFT_BUTTON)
{
glScalef(,,);
display();
}
elseif(button==GLUT_RIGHT_BUTTON)
-
. z.
{
glScalef(,,);
display();
}
glutPostRedisplay();//重新调用绘制函数
}
return;
}
void main (intargc, 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 ( );
}
-
. z.
旋转
*include"stdaf*.h"
*include<GL/>
*include<>
*include""
*defineDEG_TO_RAD //角度转为弧度的参数,即 2*PI/360
float theta=; //直线与*轴正方向的夹角
float length=; //直线的长度
float *=, y=; //直线的第一个端点
void init (void)
{
glClearColor (, , , );
glMatri*Mode (GL_PROJECTION);
gluOrtho2D (, , , );
}
void display (void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (, , );
glBegin (GL_POLYGON);
glVerte*2f (*, y);
glVerte*2f ( * + length*cos(DEG_TO_RAD*theta), y + length*sin(DEG_TO_R