c++中用opengl的gl函数在三维空间中绘制圆形和球体

绘制圆形原理:
画圆形的原理如下图,画一个圆形就相当于切蛋糕一样,将一个圆形切成很多个扇形,而扇形可以用三角形类似表示,所以我们可以将绘制圆形转化为绘制许多个三角形。


绘制圆形的代码如下:

#define PI 3.1415926
glColor3f(1.0, 0.0, 0.0);
glLineWidth(2);
glBegin(GL_TRIANGLES);
for (int z = 0; z < 360; z++)
{//这里的x轴是水平的,y轴是竖直的,绘制的是一个正对用户眼睛的圆形,类似上图的角度。//绘制圆形相当于绘制许多三角形,半径*sin后面是弧度值,弧度值=角度值*PI/180,比如角度是1度,则弧度值=1*PI/180//#define PI 3.1415926glVertex3f(圆心x坐标, 圆心y坐标, 圆心z坐标);glVertex3f(圆心x坐标+ 圆形的半径*(cos(z*PI / 180)), 圆心y坐标 + 圆形的半径*(sin(z*PI / 180)), 圆心z坐标 );glVertex3f(圆心x坐标+ 圆形的半径*(cos((z + 1)*PI / 180)), 圆心y坐标 + 圆形的半径*(sin((z + 1)*PI / 180)), 圆心z坐标 );}
glEnd();

绘制球体原理:
数学中的简单原理,一个球体相当于一个圆形绕y轴快速旋转,根据这个原理绘制球体相当于上面的那个圆绕y轴旋转360度,绕y轴旋转,x和z轴坐标变化,y不变
绘制球体的代码如下:

#define PI 3.1415926
glColor3f(1.0, 0.0, 0.0);
glLineWidth(2);
glBegin(GL_TRIANGLES);
for (int j = 0; j<360; j++) {for (int z = 0; z < 360; z++){glVertex3f(球心x坐标,球心y坐标,球心z坐标);glVertex3f(球心x坐标 + 半径*(cos(z*PI / 180))*(cos(j*PI / 180)), 球心y坐标 + 半径*(sin(z*PI / 180)), 球心z坐标+ 半径*(cos(z*PI / 180))*(sin(j*PI / 180)));glVertex3f(球心x坐标 + 半径*(cos((z + 1)*PI / 180))*(cos(j*PI / 180)), 球心y坐标 + 半径*(sin((z + 1)*PI / 180)), 球心z坐标 + 半径*(cos((z + 1)*PI / 180))*(sin(j*PI / 180)));}}
glEnd();

注意:需要将代码中文字部分代替成自己实际的量

c++中用opengl的gl函数在三维空间中绘制圆形和画球体相关推荐

  1. matlab在二维平面和三维空间中绘制圆形

    matlab在二维平面和三维空间中绘制圆形 二维平面绘制圆形 方法1: x = 10;y = 10;%圆心 r = 5; %半径 rectangle('Position',[x-r,y-r,2*r,2 ...

  2. Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot)、通过size参数指定数据点的大小、自定义不同分组的气泡的色彩

    Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot).通过size参数指定数据点的大小.自定义不同分组的气泡的色彩 目录

  3. Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot)、通过size参数指定数据点的大小

    Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot).通过size参数指定数据点的大小 目录

  4. np.meshgrid()函数 以及 三维空间中的坐标位置生成 以及 numpy.repeat()函数介绍

    一.np.meshgrid()函数 1.np.meshgrid()介绍 X, Y = np.meshgrid(x, y) 代表的是将x中每一个数据和y中每一个数据组合生成很多点,然后将这些点的x坐标放 ...

  5. r roc函数_R语言中绘制ROC曲线

    两种方法: 第一种,摘自别人的方法: ROC曲线,做分类时经常会用到的一种结果表现方法.诸如此类的工作,首选工具当然是R.在CRAN上搜了一下,找到一个叫ROCR的包.尽管这个包已经很久没更新了,但用 ...

  6. 三维空间中绘制点、线、面、UV贴图,万能的BufferGeometry(three.js实战4)

    使用BufferGeometry 1. 序言 2. 如何使用BufferGeometry 2.1 创建BufferGeometry对象 2.2 向BufferGeometry对象添加属性 2.3 创建 ...

  7. PHP中绘制图像的一些函数总结

    在PHP中绘制图像的函数非常丰富,包括点.线.各种几何图形等可以想象出来的平面图形,都可以通过PHP中提供的各种画图函数完成.我们在这里介绍一些常用的图像绘制,如果使用我们没有介绍过的函数,可以参考手 ...

  8. php画星球,PHP中绘制图像的一些函数总结

    在PHP中绘制图像的函数非常丰富,包括点.线.各种几何图形等可以想象出来的平面图形,都可以通过PHP中提供的各种画图函数完成.我们在这里介绍一些常用的图像绘制,如果使用我们没有介绍过的函数,可以参考手 ...

  9. Android中用OpenGL ES Tracer分析绘制过程

    Tracer for OpenGL ES(http://developer.android.com/tools/help/gltracer.html)是Android SDK中新增加的开发工具,可逐帧 ...

最新文章

  1. mysql pmm进程_mysql性能监控软件pmm
  2. q7goodies事例_Java 8 Friday Goodies:Lambda和排序
  3. *【HDU - 2819】Swap(二分图匹配,输出路径)(待证明:是否是最少交换次数?)
  4. HTML窗口与对话框
  5. 【前端】书签应用开发总结
  6. TP5整合的阿里云短信接口
  7. [转]TortoiseSVN客户端的安装
  8. cocos2dx3.17的csb文件使用方法
  9. 爱莫logo里的大千世界 | 精彩传送门
  10. Android性能优化系列-监听View inflate周期并动态替换
  11. 杰洛特的Python之旅01_抓取微信性别数据在web上展现饼图
  12. 求职季找工作心得与应聘经验分享(一)
  13. mysql爱吃鱼油_爱多美鱼油_鱼油_维生素_dha_epa_关节炎_高科技_鳕鱼_痛风_止血_改善记忆力_艾多美鱼油_医疗健康_保健品...
  14. SQL条件语句(and,or,is null)
  15. 数据结构:一元多项式(线性表)
  16. 分享一个程序猿小白两年工作经验的职业之路
  17. 英伟达最新雷达工作:NVRadar:一种实时的雷达障碍检测和占位栅格预测方法
  18. Opengl中的TBN矩阵的计算和使用
  19. Cocos2dx 小技巧(九)现成的粒子特效
  20. Word2016 中插入数学公式和代码高亮

热门文章

  1. 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(一)
  2. ISO27001电脑硬性要求。
  3. JavaScript DOM / BOM (查询获取元素对象【增、删、改、查】 )以及常见鼠标事件
  4. 谷歌本月重启办公室上班;小米成中国第一大手机厂商;英特尔处理器被曝存关键漏洞 | EA周报
  5. ArcGIS 分类随机抽样
  6. jquery视频插件_10个jQuery视频插件
  7. 外卖webapp1---express
  8. 分享项目 - Vue3 + TS + element-ui-plus 项目 -- Table表格表单
  9. 道教对中国文化的深远影响
  10. Vue中的数据代理与数据劫持