openGL画五角星
vs2017
//OpenGL要包含gl.h和glut.h,但glut文件中已经包含这两个文件了
#include <gl\glut.h>
#include <gl\GL.h>#include <iostream>
#include <cmath>void displayFivePointStar() { glClearColor(1, 1, 1, 1);glClear(GL_COLOR_BUFFER_BIT);//glBegin(GL_LINES);//十字架//glColor3f(1.0, 0.0, 0.0);//glVertex3f(0.00, 0.00, 0);//glVertex3f(0.75, 0.00, 0);////glEnd();glBegin(GL_LINE_LOOP);glColor3f(1.0, 0.0, 0.0);glBegin(GL_LINE_LOOP);double x, y, zx, zy, pi = 3.1416, m = pi / 2 - 2 * pi / 5, n,r1,p,r;p = pi / 2 - pi / 5;//n = 2 * m;r1 = 1 * sin(m);r = r1 / sin(p);int i, j;for (i = 0; i < 5; i++) {zx = r*cos(p);zy = r*sin(p);x = 1 * cos(m);y = 1 * sin(m);glVertex2f(x, y);glVertex2f(zx, zy);m += 2 * pi / 5;p += 2 * pi / 5;} glEnd();glFlush();
}void displayFivePointStar2() { // 把五角星分成十个三角形,旋转填色glClearColor(1, 1, 1, 1);glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLES);glColor3f(1.0, 0.0, 0.0);double x, y, zx, zy, pi = 3.1416, m = pi / 2 - 2 * pi / 5, n, r1, p, r;p = pi / 2 - pi / 5;//n = 2 * m;r1 = 1 * sin(m); // 默认外圈圆半径为1r = r1 / sin(p); // r为内五个角所在圆半径int i, j;for (i = 0; i < 10; i++) { zx = r * cos(p);// x,y 为外圈五个角,zx,zy为内圈五个角zy = r * sin(p);x = 1 * cos(m);y = 1 * sin(m);glVertex2f(x, y);glVertex2f(zx, zy);glVertex2f(0, 0);if(i%2==0)m += 2 * pi / 5;else p += 2 * pi / 5;}glEnd();glFlush();
}int main(int argc, char *argv[])
{//对glut初始化,这个函数必须在其它glut使用之前调用一次。//其格式比较死板,一般用glutInit(&argc, argv)就可以了。glutInit(&argc, argv);//设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。//GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(500, 100);//设置窗口在屏幕中的位置glutInitWindowSize(400, 400);//设置窗口的大小//根据前面设置的信息创建窗口,参数将被作为窗口的标题。//注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。glutCreateWindow("第一个OpenGL程序");//设置一个函数,当需要进行画图时,这个函数就会被调用。//这个说法不够准确,暂时这样说吧。/*glutDisplayFunc(myDisplay);*//*glutDisplayFunc(display);*/glutDisplayFunc(displayFivePointStar2);//进行一个消息循环。//只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。glutMainLoop();return 0;
}
openGL画五角星相关推荐
- 用OpenGL画五角星
第一次写博客,正在上大二,学的计算机专业,因为课很杂,想把自己学过的东西顺便写下来做个记录,写的不好请见谅! 这个学期学的图形学,主要是讲OpenGL的东西,老师让我们自己用GL_LINES.GL_L ...
- OpenGL画三角形 圆 五角星 菱形
不开心,想玩,当家的不许我玩,还说你要玩就玩,那我不管你了,哭哭TAT 用OPenGL原有的画三角形,正方形,点的函数来作图. 画圆是用化曲为直的思想,把圆分为很多分,越分的多越细,越像圆. 画菱形和 ...
- python画五角星代码_Python使用Turtle模块绘制五星红旗代码示例
在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言.python本身内置了这个模块,其可视化的方法可以帮助小孩儿对编程的一些 ...
- Java数字图像处理基础-------Java Swing简单使用,图形绘画---画五角星
Java数字图像处理基础-------Java Swing简单使用,图形绘画-画五角星 一:简介 要画出五角星出来,我们只需要在面板上产生5个点,然后把这5个点进行连接就可实现: 二:代码演示 imp ...
- python画五角星代码_Python GUI 编程tkinter--画五角星和简单的动画制作
1.利用Python的tkinter画一个五角星: 2.做一个简单的动画 分析五角心的五个顶点的坐标: 确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的 ...
- python画五角星代码_Python使用turtule画五角星的方法
Python使用turtule画五角星的方法 更新时间:2015年07月09日 10:04:03 作者:pythonstart 这篇文章主要介绍了Python使用turtule画五角星的方法,运行该程 ...
- 用python画五角星、填充不了颜色_python的turtle画五角星内部不能填充的解决办法...
1.网上画的五角星方法,本机发现内部五角星不能填充. 1.1代码如: from turtle import* #从turtle中导出所有模块 color("black"," ...
- python画五角星
python画五角星 今天刚学python海龟画图,课堂作业画五角星,顺便分享给大家. 运行图片如下: 代码如下: # 以画布中心为中点,向右为X轴正方向,向上为Y轴正方向 import turtle ...
- opengl画圆柱体、圆锥等并使用四元数旋转
opengl画圆锥和圆柱体 具体资源欢迎下载:https://download.csdn.net/download/qq_32563773/13077923 画圆锥 如要画出想画的立方体,必须计算出来 ...
最新文章
- linux系统安装后优化
- [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕)
- python从入门到精通pdf百度云下载-跟老齐学Python从入门到精通 电子版(pdf格式)...
- SQL 流程控制语句 之四 WAITFOR语句介绍
- 集成学习(ensemble learning)(三)
- 一文看懂NumPy的切片中常用的冒号
- linux虚拟化桌面协议,桌面虚拟化传输协议之android spice
- matlab2014 下的 libsvm 安装
- TCL学习心得(2)Tcl语言的语法
- 高数 | 极坐标下弧微元(线元ds)的推导
- Halcon读取Csv文件
- 数据结构基本英语词汇
- 微信小程序 - 自定义头部导航栏组件(详解) + iphoneX以上遮挡小黑条适配问题
- 18118 勇者斗恶龙
- 运用Python+Pygame开发坦克大战游戏_版本V1.01
- 宜人贷何林海:社交图谱在金融反欺诈产品的应用
- 简单的签到代码_Python自动签到
- linux删除panel命令,Linux系统删除gnome panel上的图标的解决方法(图)
- vue3.0 + typescript openlayers实现地图标点、移动、画线、显示范围、测量长度、测量面积、画三角形、画正方形、画圆、线选、画笔、清除测量、清除、地图上展示弹窗等功能
- PWN学习资料整理——(二)基础
热门文章
- lua学习笔记---作用域
- Java开发常用的在线工具
- shardingsphere之sharding-proxy读写分离学习笔记
- 呼叫中心与网络电话的区别,看完懂了!
- 数云融合丨知识图谱在烟草零售数字化转型中的应用
- python画美图_Python爬虫下手,就得从高清美图开始!
- Heatmap-based Vanishing Point boosts Lane Detection 论文翻译
- Running pipenv gives TypeError: 'module' object is not callable
- java排序输出序号_Java对map进行排序并生成序号
- tvp5150的iic配置-应用程序实现。