我的直觉一直是,当任何球体投影到2D空间中时,结果在数学上总是椭圆(在退化的情况下为圆)。图形编程,并与其他人一起提出来,他们坚称我错了。如果我没记错的话,他们认为结果可能是模糊的“蛋形”。

谁是正确的?不想完全改变我的问题,但我意识到由于多年来对这一领域的熟悉,我遗漏了重要的细节。应用程序。

其他投影当然对于许多用途都很有趣,因此我现在不希望将它们删除。但是,如果答案中最突出的部分是透视投影,那就太好了。

评论

假设是透视投影,则AFAICS由视点地平线形成的“边界”将是一个(截断的)圆锥体,因此大多数投影将是圆锥截面:en.wikipedia.org/wiki/Conic_section。因此,椭圆是可能的,但不是唯一的可能性。

在这种情况下,我会将自己的评论提升为答案...

您需要添加一个约束。鱼眼镜头也是透视投影,不会出现椭圆形。您需要的约束是线性。

我宁愿说“投影是线性应用程序”之类的话。可能会有一些捷径,例如“线性异形”之类的东西,但我早已忘记了。

这应该在该线程中的某个地方,所以在这里添加它:) Inigo Quilez的解析球投影:shadertoy.com/view/XdBGzd

#1 楼

假设在球体外部有一个透视投影和一个视点,则由视点和球体上形成视点WRT的球体上的圆形成的“边界”将是一个圆锥体。

进行透视投影(在平面上)等效于将该圆锥与平面相交,从而产生圆锥形截面。仅供参考,这张来自Wikipedia 的图片显示了四个非退化的情况,因此有可能出现椭圆/圆,但不是唯一的-无限抛物线或双曲线(我猜是否飞机穿过眼睛,甚至变质的情况也有可能。

评论


$ \ begingroup $
尽管您的论点绝对合理,但我无法想象结果将是抛物线还是双曲线。有些话阐明什么样的布局会导致这些问题将是很好的。我能动动脑筋的最好办法就是“以某种方式与无限性有关” ...
$ \ endgroup $
–hippietrail
15年9月15日在15:27

$ \ begingroup $
也许等效的方法可能会有所帮助。想象一下,您拿着一支手电筒(北美的手电筒),它发出圆锥形的光束,并且您在一个黑暗的空(无限)仓库中。将火炬照在地板上,您会看到一个椭圆形。现在,将割炬的轴线逐渐向水平方向倾斜。椭圆会越来越长,直到光束本身的最高“边缘”变为水平(即平行于地板)为止。现在,投影是抛物线,并且会一直延伸。进一步倾斜将形成双曲线。
$ \ endgroup $
–西蒙F
2015年9月15日15:42



$ \ begingroup $
@hippietrail:可能值得注意的是,在镜头前面有一个视平面时,唯一可能出现抛物线或双曲线的方法是球的至少一部分在焦点和视图平面。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
2015年9月15日在22:43



$ \ begingroup $
@IlmariKaronen:在这种情况下,“联络点”是什么意思?眼睛关注的重点是什么?消失点了吗? (我在12岁或13岁时就自学了3D透视旋转和投影技术,但从未精通数学和术语。)
$ \ endgroup $
–hippietrail
2015年9月19日下午4:47

$ \ begingroup $
@hippietrail在此上下文中,焦点将是圆锥的顶点。有效地透视“针孔”,针孔相机模型。 (PS的名字是否意味着会见“一个陌生的女士。她让我感到紧张。”?)
$ \ endgroup $
–西蒙F
2015年9月21日在7:49



#2 楼

这更像是对@SimonF的回答的长篇评论,我正在尝试使自己变得有些独立。通过使用超广角摄像头在3D引擎中绘制图像来进行测试很容易。旋转相机说出30度角,使物体不在焦点中间。然后逐渐将相机移至靠近球体的位置。请注意我们是如何突然打穿内部的表面形式的。但是形状只会退出框架。

评论


$ \ begingroup $
可能真的很不错的是,如果您的动画可以更改各种结果的阴影:对椭圆说白色,对抛物线的“一帧”说绿色,对双曲线说红色。 :-)
$ \ endgroup $
–西蒙F
15年9月16日在8:42

$ \ begingroup $
@SimonF我想到了这一点,当时我正计划像内森·里德这样的人。但是我有点着急,我很幸运能够完成此渲染。最初我对双曲线是否可能存在存有一定的怀疑,但是现在看来似乎很明显。
$ \ endgroup $
– joojaa
2015年9月16日9:08



#3 楼

投影系统用于将3D形状转换为平面(2D)形状。

根据投影系统的类型,不同的结果和形状(例如矩形,饼形,椭圆形,圆形,...

可以根据投影系统生成的结果的特征对其进行分类。

为了继续,我想使用一个我们之前都曾见过的非常容易理解且常见的示例,地球球体和全球范围的地图无处不在。球形就是地球!

把地球想象成您的球体,它是由地球球形构成的平面世界地图。在大多数世界地图中,您会看到极点附近的国家/地区比实际国家要大得多,例如冰岛(实际上是非洲大陆的1/14),但地图显示这两个国家是平等的。这是因为当我们忽略一维时,会失去形状的一个特征。

不同的投影系统及其结果

这是一个平面投影,无法节省距离,角度或面积。红色圆圈表示夸张的数量,这是此投影的产物。



等面积,看看这个区域中的冰岛和非洲,并与上面进行比较。



投影系统可以按其保留的类别进行分类。


等面积。
等角度保留形状没有变形(等角)。等距。这是最著名的投影系统,已在许多应用中使用。您的球体在这里是矩形!


因此,您不能说一个球体总是会投影到一个椭圆上。如上所述,球体可以投影为矩形(第一形状),也可以是椭圆形,但具有不同的特征(相等的角度,距离,形状,面积-参见下图),或者也可以将球体投影为圆锥然后打开圆锥形,这样您就可以吃一块饼。

上述每种投影系统都可以应用迭代或直接算法,这些算法可以在Internet上找到。我没有谈论公式和转换,因为您没有问。虽然我希望您觉得这个答案有用。




在透视投影中,我说是的,只有椭圆形会产生于球体之外

用水平面切割圆锥会形成一个圆。

用斜平面切割会产生一个斜面,该斜面可能是椭圆形或双曲线,具体取决于切割角度,并且当该角度倾斜到垂直进入会产生抛物线(如下图)。



也许这很明显,但请看一下它们的方程式。

对于简单起见,我假定所有几何都以原点为中心。

等式:


椭圆:$ x ^ 2 / a ^ 2 + y ^ 2 / b ^ 2 = 1 $

双曲线:$ x ^ 2 / a ^ 2-y ^ 2 / b ^ 2 = 1 $

抛物线:$ y ^ 2 = 4ax $

形态:

椭圆显然有两个焦点。圆作为特殊的省略号也有两个焦点,但它们是重合的。但是,双曲线是等号的y轴反射镜,它也有两个焦点。抛物线有一个焦点,但实际上有两个焦点,因为第二个焦点处于无穷大:当切割平面倾斜到90度(轴承角度)时,第二个焦点将变为无穷大。
如您所见,所有椭圆都是椭圆,但是您可以使用不同的名称来描述特殊情况,但是如果要在游戏中实现椭圆,则需要假设椭圆方程就足够了。我或您或您的朋友,无法分辨你们中哪个人是正确的,因为两者都可能正确。

评论


$ \ begingroup $
感谢您的回答。请参阅我关于透视投影的附录。抱歉,我的原始措辞是。
$ \ endgroup $
–hippietrail
15年9月15日在15:28

$ \ begingroup $
是的,我试图在我的原始问题中进行介绍。我相信点和线段也是其他退化的椭圆。
$ \ endgroup $
–hippietrail
2015年9月15日在17:27

$ \ begingroup $
@hippietrail:实际上,地球也是透视投影的一个很好的例子。如果您在户外拍摄普通照片,将相机指向地平线,则(假设您的镜头没有畸变,并且地球大约是一个完美的球体)图片中的地球图像将是(一部分)非常广泛的双曲线。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
15年9月15日在22:53

$ \ begingroup $
@@ IlmariKaronen:哇,它非常清晰,值得自己回答!是否会产生抛物线?
$ \ endgroup $
–hippietrail
2015年9月16日下午5:20

$ \ begingroup $
@hippietrail我在回答的末尾添加了一些解释,希望它可以回答已编辑问题的新方面。并感谢您的补充。
$ \ endgroup $
–伊曼
2015年9月16日上午10:41

#4 楼

SimonF的推理基本上说服了我,但我决定进行健全性检查。我加载了恰好有一些球体的UE4像这样的水平:并将其定位为球体位于图像的角附近:



然后我将其带入Inkscape并使用椭圆工具在其上绘制: >


惊喜!非常合适!

评论


$ \ begingroup $
非常有说明性!您如何处理抛物线和双曲线案件?
$ \ endgroup $
–hippietrail
2015年9月15日于20:47

$ \ begingroup $
@hippietrail不幸的是,矢量艺术程序没有像椭圆工具那样具有抛物线和双曲线工具,因此会有点困难... :)
$ \ endgroup $
–内森·里德(Nathan Reed)
2015年9月15日22:00

$ \ begingroup $
@NathanReed当然可以,但是它们确实有常规的绘图工具,(如果不能从我这里得到),可以绘制一个普通的抛物线并缩放/旋转以适合。
$ \ endgroup $
– joojaa
15年9月16日在9:11

#5 楼

切片一个球时,没有形成抛物线或双曲线。除了特殊情况是一个圆以外,也没有省略号,结果始终是一个圆。如果将球体投影到倾斜的平面上,则会得到椭圆

评论


$ \ begingroup $
其他答案表明除椭圆以外的其他形状也是可能的。您能证明为什么它们可能不正确吗?
$ \ endgroup $
–西蒙F
18年4月11日在10:57