计算机图形学-OpenGL-绘制五角星
2017-05-26 21:48
204 查看
计算机图形学-OpenGL-绘制五角星
本次实验我们将利用OpenGL绘制五角星图案,集成开发环境采用VS2013。预备知识
五角星五个顶点的计算方法:五个顶点均匀分布在圆周上,可以用如下公式计算:
Xi=R∗cos(2∗π∗i5)
Xi=R∗sin(2∗π∗i5)
i=0,1,2,3,4
实验步骤
按上述公式计算5个顶点坐标,记为ABCDE;画线段:AC、CE、EB、BD、DA。
设置合适的线段宽度、颜色。
将图形移动到屏幕中央:glTranslate2f(dx, dy)
实验代码
#include <GL/glut.h> #include <math.h> #include <cstdio> const GLfloat Pi = 3.1415926536f; //定义Pi值 GLfloat X[5], Y[5]; //用数组声明5组坐标 int R = 1; //定义半径 void init() //初始化函数 { glClearColor(1.0, 1.0, 1.0, 0.0); //设置背景颜色 for (int i = 0; i <= 4; i++) { //在圆上初始化5个坐标点 X[i] = R*cos(2 * Pi*i / 5); Y[i] = R*sin(2 * Pi*i / 5); } } void myDisplay(void) //显示函数 { glClear(GL_COLOR_BUFFER_BIT); //清除颜色 glColor3f(1.0, 0.0, 0.0); //设置线条颜色 glBegin(GL_LINE_LOOP); //按照顺序开始画线,AC->CE->EB->BD->DA glVertex2f(X[0], Y[0]); glVertex2f(X[2], Y[2]); glVertex2f(X[4], Y[4]); glVertex2f(X[1], Y[1]); glVertex2f(X[3], Y[3]); glEnd(); glFlush(); //保证前面的命令立即执行 } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); //设置显示位置 glutInitWindowSize(400, 400); //设置窗口大小 glutCreateWindow("五角星图案"); //设置窗口标题 init(); //运行初始化函数 glutDisplayFunc(&myDisplay); //调用显示窗口 glutMainLoop(); return 0; }
效果预览
相关文章推荐
- 计算机图形学-基于OpenGL的绘制直线及图形变换练习
- 计算机图形学-基于OpenGL的绘制空间曲线
- 计算机图形学-基于OpenGL的绘制Bezier曲线
- 计算机图形学——OpenGL学习系列之绘制3D下的小桌子
- 计算机图形学02一一OpenGL 代码实现绘制一条线
- 计算机图形学和OpenGL(二)坐标系和绘制点线函数
- c&OpenGL实现计算机图形学:双步绘制直线法绘制菱形
- OpenGL&nbsp;绘制字母&nbsp;计算机图形学
- 计算机图形学-绘制圆、椭圆
- 有关于计算机图形学 d3d & opengl 出现的问题
- 计算机图形学09一一OpenGL 显示列表
- 计算机图形学笔记---GPU图形绘制管线
- OpenGL实验(一)彩色五角星绘制
- 计算机图形学(三)_图元的属性_8_ 其他OpenGL线效果
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_3_椭圆生成算法
- 计算机图形学-连续曲线绘制(可改变形状)
- [OpenGL]计算机图形学:明暗处理的基本算法
- 计算机图形学linux遇到的错误gcc 编译错误 opengl
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法
- [Review]基于OpenGL的计算机图形学之期末复习提纲