本文所讲的内容已经开源,你可以在 这里 找到源代码。


前面我们介绍了三维图形的轴测投影画法,以及使用斜二测图画常见的三维多面体。本文介绍使用正等测图画常见的三维带圆弧的图形。

圆台

在圆柱、圆锥、圆台中,我们从圆台开始,因为圆柱、圆锥其实是圆台的一种特例。

这里,我们规定圆台上下两个面的半径(r,R)存在固定的比例,比如(r = R * 0.5)。

在输入的两点 A、B 中,我们以 A 点作为小圆的圆心,规定 B 点作为大圆最右(左)侧点,假设圆台高为 h,那么显然有:

那么,三维空间的圆,映射到二维平面,应该是什么图形呢?

根据正等测投影变换,有:

这里 (X,Y) 是圆的二维映射上的点坐标,所以有:

对于平行于x、y 平面的圆,有 ,所以:

所以在正等测投影变换下,平行于x、y 平面的圆的二维映射是一个椭圆,且其长轴(平行于 x 轴)半径与圆的半径 r 相等,短轴半径为 

圆锥

当圆台上下两个面的半径(r,R)的比例为 0 时,即 r = 0 时,就变成圆锥。此时,小圆退化为一个顶点,。其他计算完成沿用圆台的过程就行了。

圆柱

圆柱则更简单,将圆台上下两个面的半径(r,R)的比例设置为 1 即可。

在输入的两点 A、B 中,我们以 A 点作为球心,两点距离作为半径(依据在下面说明)。

在画球时,实际上是是画了三个圆心、半径都一样的圆。

在上面我们已经证明 x,y 平面的圆(用平面  切球),其正等测投影是一个椭圆。

我们再取平面,用这个面切取球形成的圆,我们来看看它的正等测投影是什么?

结合投影变换、球方程:

去掉 z,则:

上面第一个式子平方求和,有:

所以这个切面圆的正等测投影其实也是一个圆,并且半径与球的半径相等。

这就是为什么我们在画球时,一般会先直接画一个圆的原因了。另外可以规定输入的 B 点也在这个投影上,所以有“A、B 两点距离就是球的半径”这样的结论。

椭球

椭球有三个轴,分别平行于 x、y、z轴,确定了球心和半径,就可以作图了。

在三个轴中,我们规定有两个轴长是相等的,三个半径分别为:(w, h, h) 。所以椭圆方程为:

在输入的两点 A、B 中,我们以 A 点作为球心,B 点作为切平面 所切椭圆的包围矩形的一个顶点。

三维几何图形创作方法(Geometry3D)之三相关推荐

  1. 三维几何图形创作方法(Geometry3D)之一

    前面我们介绍了在场景中构建二维几何图形的方法. 二维几何图形创作方法(Geometry2D) 这里我们继续介绍三维几何图形的构建方法. 同样, 输入两个点A.B,要能够快速的画出三维几何图形.相比于二 ...

  2. 二维几何图形创作方法(Geometry2D)

    本文所讲的内容已经开源,你可以在 这里 找到源代码. 这里我们介绍一下在场景中构建二维几何图形,计算图形的顶点.边的方法.创作几何图形主要依靠鼠标(或者触摸屏.手写笔之类的点输入设备),输入几个点,快 ...

  3. 山体计算机科学与技术,三维山体建模方法初探

    论文导读:随着信息技术的逐步发展和社会要求的逐步提高,虚拟现实的研究领域开始转向山体.水域等不规则形态的实体.本文以山体为例就不规则形体的可视化过程进行研究,探讨一种不需要实体数据,计算机可视化技术与 ...

  4. java三维滑雪,第六章 三维数据空间分析方法.ppt

    第六章 三维数据空间分析方法 * * * * 可视性分析 * * 自然邻域法插值 基本思路: 利用输入点及邻近栅格单元进行插值生成栅格表面. 方法: 利用输入数据点(样本点)为节点,建立Delauna ...

  5. 数字化转型知识方法系列之三:以价值效益为导向推进数字化转型的五大重点任务

    数字化转型知识方法系列之三:以价值效益为导向推进数字化转型的五大重点任务 人工智能技术与咨询 一.数字化转型应围绕价值效益系统性推进 新一轮科技革命和产业变革迅猛发展,世界正处在一个从工业时代向信息时 ...

  6. 利用计算机绘制地质图的思路和方法,基于平面地质图的三维地质建模方法研究...

    摘要: 平面地质图综合了地质野外勘察工作成果与地质专家知识,揭示了地区的岩石.地层和地质构造等信息,是人们了解区域地质最易获取和最直接的数据源.研究基于平面地质图的三维地质体建模方法,能够有效地解决缺 ...

  7. python 三维曲线拟合_python实现三维拟合的方法

    如下所示: from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import axes3 ...

  8. Python笔记:matplotlib 三维图表绘制方法简介

    Python笔记:三维图表绘制方法简介 1. python三维图表绘制方法简介 2. 实例说明 1. 三维曲线图绘制 2. 三维散点图绘制 3. 三维曲面图绘制 3. 参考链接 1. python三维 ...

  9. python 3d图表_matplotlib 三维图表绘制方法简介

    1. python三维图表绘制方法简介 python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异. 相较于二维图表使用的pyplot库,三维 ...

  10. 【金猿技术展】基于数据控制三维组态的方法及装置——实现数据驱动三维模型的精准运转技术...

    数字冰雹技术 本项目由数字冰雹投递并参与"数据猿年度金猿策划活动--2021大数据产业创新技术突破榜榜单及奖项"评选. 数据智能产业创新服务媒体 --聚焦数智 · 改变商业 基于数 ...

最新文章

  1. RabbitMQ(二):RabbitMQ高级特性
  2. 调查与讨论:你在调用别人接口的时候有考虑过失败情况吗?
  3. centos 没有可用的网络设备
  4. 程序员面试题精选100题(23)-跳台阶问题[算法]
  5. c语言比较麻烦的编程题,C语言编程题,比较简单
  6. SAP云平台上的Fiori administation工具
  7. 登录系统_执照管理系统登录与执照转换操作指南
  8. 宏锦软件2015年的计划
  9. 4.4 Iterator(迭代器)
  10. 三菱q系列plc 和电脑socket_三菱Q系列PLC 以太网通信设置方法
  11. linux命令dh f,linux 下 find 命令的高级用法
  12. 我是 Spring 菜鸟 -- 初始化方法 TODO
  13. 用python计算准确率_Pytorch 计算误判率,计算准确率,计算召回率的例子
  14. 开发LED屏幕页面遇到的问题
  15. linux BufferedImage.createGraphics()卡住不动
  16. EasyRecovery---U盘数据恢复技巧
  17. 定积分,二重积分,三重积分
  18. 解决视频资源音乐资源在Android模拟器中不能播放的问题
  19. mysql 慢_mysql 大事物commit慢造成全库堵塞问题
  20. 计算机怎样升win10,如何升级Win10 Win7升级到Win10图文教程

热门文章

  1. 2008年全国大学生数学建模D题(加附件)
  2. 深度解读“人类首次实现室温超导”:思路并无突破,中国并不落后-1
  3. 无线路由器无线桥接(一)
  4. 服务器fps不稳定,FPS不稳定是什么原因?玩游戏FPS低怎么办?
  5. 【史上最全】常用USB转串口芯片特性比较
  6. python发送钉钉消息
  7. 快速调用企业工商数据
  8. Monitor(二分,二维前缀和板子记录)
  9. matlab画柱状图斜线,matlab柱状图斜线填充
  10. 猿创征文|2022全球程序员薪资排行一览