OpenGL 图形变换练习(平移,缩小)——画小汽车

写在前面

哈哈哈哈哈哈哈哈哈哈,东拼西凑自己写出来的作业,太爽了

效果图

俺觉得还挺好看的~
OpenGL 图形变换练习(平移,缩小)——画小汽车_第1张图片

代码

#include <GL/glut.h> 
#include "math.h"
#include <iostream>
#include<Windows.h>

int n = 36000;  //圆绘制次数
float PI = 3.1415926f;
float R = 0.1f;

//画矩形
void draw_L(void) {
	glBegin(GL_POLYGON);
	glVertex2f(-0.5f, 0.4f);
	glVertex2f(-0.5f, 0.1f);
	glVertex2f(0.5f, 0.1f);
	glVertex2f(0.5f, 0.4f);
	glEnd();
}
//画圆
void draw_O(void) {
	glBegin(GL_POLYGON);
	for (int i = 0; i < n; i++) {
		glVertex2f(R*cos(2 * PI / n * i) - 0.3, R*sin(2 * PI / n * i) + 0.05);
	}
	glEnd();
}
void myDisplay(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glClearColor(0, 0, 0, 0);
	glColor4f(0.3, 0.2, 0.5, 0);
	//先画一个矩形
	draw_L();
	//再画一个圆
	draw_O();
	//写平移指数,画圆
	glTranslatef(0.5f, 0.0f, 0.0f);
	draw_O();
	//写平移,缩小,画矩形
	glTranslatef(-0.3f, 0.3f, 0.0f);
	glScalef(0.3f, 0.5f, 0.0f);
	draw_L();
	glFlush();

}

int main(int argc, char *argv[])
{
	glutInit(&argc, argv);   //初始化GLUT
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(400, 400);
	glutCreateWindow("一起来画小汽车呀!");
	glutDisplayFunc(&myDisplay);   //回调函数 
	glClearColor(0.9f, 0.85f, 0.97f, 1.0f);
	glutMainLoop();    //持续显示,当窗口改变会重新绘制图形
	return 0;
}

好啦,就这这么简单,哈哈哈哈哈哈哈

你可能感兴趣的:(作业_图形学)