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

这篇具有很好参考价值的文章主要介绍了c++中用opengl的gl函数在三维空间中绘制圆形和画球体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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.1415926

						glVertex3f(圆心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();

注意:需要将代码中文字部分代替成自己实际的量文章来源地址https://www.toymoban.com/news/detail-502729.html

到了这里,关于c++中用opengl的gl函数在三维空间中绘制圆形和画球体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 04-附注 三维空间中的线性变换

    这是关于3Blue1Brown \\\"线性代数的本质\\\"的学习笔记。 图1 绕y轴旋转90° 绕y轴旋转90°后,各基向量所在的坐标如图1所示。用旋转后的各基向量作为矩阵的列,就得到变换矩阵。变换矩阵就是对原向量就是缩放、旋转。

    2024年02月05日
    浏览(41)
  • 三维空间刚体运动之旋转矩阵与变换矩阵

    点: 点是空间中的基本元素,没有长度,没有体积; 向量: 把两个点连接起来,就构成了向量,向量可以看成从某点指向另一点的一个箭头;只有当我们指定这个三维空间中的某个坐标系时,才可以谈论该向量在此坐标系下的坐标;默认向量就是列向量; 坐标系: 三根不

    2024年02月11日
    浏览(61)
  • PCL 判断两条线段的平行性(三维空间)

    这里使用一种比较有趣的方式来判断三维空间中两条线段的平行性,我们都知道两条线段所代表的矢量进行叉乘计算所得数值,代表了由这两条线段组成的平行四边形的面积值,如下图所示: ok,那么如果将此结论推广到三维空间呢?可以得到下面的形式: 其中, i ⃗

    2024年02月10日
    浏览(43)
  • 视觉SLAM14讲笔记-第3讲-三维空间刚体运动

    空间向量之间的运算包括: 数乘、加法、减法、内积、外积。 内积 :可以描述向量间的投影关系,结果是一个标量。 a ⃗ ⋅ b ⃗ = ∑ i = 1 3 a i b i = ∤ a ∤ ∤ b ∤ c o s ⟨ a , b ⟩ vec{a} cdot vec{b}=sum_{i=1}^3{{a _i}{b_i}} =nmid a nmid nmid b nmid cos langle a,b rangle a ⋅ b = i = 1 ∑ 3 ​

    2024年02月11日
    浏览(48)
  • 【数理知识】求两个三维空间点的坐标矩阵之间,任意两两点之间的空间距离,matlab 实现

    假设有两个包含了三维空间点坐标的,三维向量集 A A A 和 B B B ,两集合中分别有 m m m 个和 n n n 个三维空间坐标点,可以用矩阵表示为 A = [ a 1 x a 2 x a 3 x ⋯ a m x a 1 y a 2 y a 3 y ⋯ a m y a 1 z a 2 z a 3 z ⋯ a m z ] 3 × m , B = [ b 1 x b 2 x b 3 x ⋯ b n x b 1 y b 2 y b 3 y ⋯ b n y b 1 z b 2 z b 3 z ⋯

    2024年02月11日
    浏览(51)
  • 双目视觉离线测量空间三维坐标带详细注释

    直接上代码: 代码中的示例图片和参数详见链接。

    2024年02月11日
    浏览(40)
  • 【线性代数-3Blue1Brown】- 5 三维空间的线性变换

    飞书原文档:Docs  

    2024年02月11日
    浏览(41)
  • ArcGIS Pro实践技术应用、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合

    GIS是利用电子计算机及其外部设备,采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲,它是在一定的地域内,将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来,达到对地理和属性信息的综合管理。GIS的研究对象是整个地理空间,而地

    2024年02月09日
    浏览(49)
  • 三维重建_体素重建_空间雕刻法/体素着色法

    目录 1. 三角化和体素重建的区别 2. 空间雕刻法  空间雕刻法的一致性定义  空间雕刻法具体实现  基于八叉树的空间雕刻法具体实现​编辑  空间雕刻法效果展示  3. 体素着色法  体素着色法的缺点:不唯一性​编辑 体素着色法不唯一性解决措施​编辑  体素着色发实验

    2024年02月11日
    浏览(77)
  • 【GIS开发】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)

    🍺三维数字地球系列相关文章如下🍺: 1 【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期 2 【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期 3 【小沐学GIS】基于OpenSceneGraph(OSG)绘制三维数字地球Earth 4 【小沐学GIS】基于C++绘制太阳系

    2023年04月17日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包