opengl 画正N边形
2015-09-26 16:10
246 查看
利用画圆的方法来画正N边形
当N越大图形越趋近于圆
代码二:
#include<GL/glut.h>
#include<stdio.h>
#include<math.h>
void myDisplay(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 1.0f);
glBegin (GL_POLYGON); //顶点指定需要按逆时针方向
glVertex2f (0.0f,-0.5f);//下点
glVertex2f (0.5f,0.0f);//右点
glVertex2f (0.0f, 0.5f);//上点
glVertex2f (-0.5f,0.0f);//左点
glEnd ( );
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("画正N 边形");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
n=4 结果:
当N越大图形越趋近于圆
#include<GL/glut.h> #include<stdio.h> #include<math.h> const GLfloat R=0.5f; const GLfloat Pi=3.1415926536f; void myDisplay(void) { int n=4; glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.0f, 1.0f); glBegin(GL_POLYGON);//画填充图 //glBegin(GL_LINE_LOOP);//画非填充的图形 //glBegin(GL_POINTS);//画点 for(int i=0; i<n; ++i) glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i)); glEnd(); glFlush(); } int main(int argc,char *argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE); glutInitWindowPosition(100,100); glutInitWindowSize(400,400); glutCreateWindow("画正N边形"); glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }
代码二:
#include<GL/glut.h>
#include<stdio.h>
#include<math.h>
void myDisplay(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 1.0f);
glBegin (GL_POLYGON); //顶点指定需要按逆时针方向
glVertex2f (0.0f,-0.5f);//下点
glVertex2f (0.5f,0.0f);//右点
glVertex2f (0.0f, 0.5f);//上点
glVertex2f (-0.5f,0.0f);//左点
glEnd ( );
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("画正N 边形");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
n=4 结果:
相关文章推荐
- GNU Linux mount挂载的常用三种方法
- 基于tomcat运行HTML5 WebSocket echo例子
- Linux 中 10 个有用的命令行补全例子
- Linux 中 10 个有用的命令行补全例子
- Tomcat启动提示
- tomcat虚拟路径发布网站
- 1.2 Xshell连接CentOS
- Apache配置介绍
- linux安装mysql
- 从DRP架构进行简单工厂代替抽象工厂的SWOT分析
- 1.1 VM中CentOS7通过NAT方式设置静态IP
- CentOS–FTP安装与配置
- RHCSA 系列(十): Yum 包管理、Cron 自动任务计划和监控系统日志
- linux下mysql yum 安装 新建用户 设置权限
- Linux下core文件的生成和使用
- Linux(Centos6.5)+Nginx+PHP-fpm+Mysql配置
- kafka+storm+hbase架构设计
- 项目实操Mono+Linux配置 实现ASP.NET运行
- linux系统无法添加用户帐号的原因分析
- openwrt上proxy代理服务器--插入广告