计算机图形学图形变换代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include "stdafx.h"
#include
#include
void myinit(void) {
glClearColor(1.0,1.0,1.0,1.0);
}
void DrawTriangle(void) {
glBegin(GL_QUADS);
glVertex2f(20.0,20.0);
glVertex2f(80.0,30.0);
glVertex2f(50.0,70.0);
glVertex2f(30.0,60.0);
glEnd();
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,1.0);
glPolygonMode(GL_FRONT,GL_LINE);
DrawTriangle();
glPushMatrix();
glEnable(GL_LINE_STIPPLE);
glLineStipple(1,0xF0F0);
glTranslatef(80.0,0.0,0.0);
DrawTriangle();
glPopMatrix();
glPushMatrix();
glLineStipple(1,0x8888);
glTranslatef(20.0,80.0,0.0);
glScalef(0.5,1.5,1.0);
DrawTriangle();
glPopMatrix();
glPushMatrix();
glLineStipple(1,0xF00F);
glTranslatef(110.0,90.0,0.0);
glRotatef(30.0,0.0,0.0,1.0);
DrawTriangle();
glPopMatrix();
glFlush();
}
void myreshape(int w,int h) {
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)w,0.0,(GLdouble)h);
}
int main(int argc, char* argv[])
{glutInit(&argc,argv);
glutInitWindowSize(200,200);
glutInitWindowPosition(200,200);
glutCreateWindow("Transform");
myinit();
glutDisplayFunc(display);
glutReshapeFunc(myreshape);
glutMainLoop();
return 0;
}