曲线透视:将3D转换为2D

16
2个回答

12

大约一年后,解决方案变得非常简单。 对于一个具有以下坐标的点:

(x1,y1,z1)

然后,要将此点转换为曲线半径为R的曲线图:

dist=sqrt(x1^2 + y1^2 + z1^2)

x= R*(1+x/dist)
y= R*(1+y/dist)

我现在可以生成自己的绘画作品(图片来自维基百科):-)

曲线绘图。


很不错 :) 将距离替换为Z(或者您的坐标系中的任何一种方式)可以给您更传统的视角。如果您的屏幕中心是(0,0),那么这么简单的代码可能不需要R和“1/”部分。 - alan2here

3

谢谢,但这并没有太大帮助。维基百科页面充满了数学函数。我应该选择哪一个? - Pierre
据我所知,没有一种单一的公式可以将这些坐标转换,因为它将取决于您想要进行的三维投影类型。首先需要确定这一点。选择最适合您的投影,并应用其公式将您的坐标转换为笛卡尔二维平面。现在,您将准备好应用第二个网页中的简单公式,将您的笛卡尔坐标转换为欧几里得坐标系。 - Alexandre Bell
问题诊断:好问题,维基百科文章也很好。 我有时也会遇到这种情况。 解决方案:使用谷歌搜索补充信息或在数学论坛上提问。此外,也许 Wolfram Research 提供更好组织的信息。 - Stefan Steiger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接