我正在寻找将三维坐标(x0,y0,z0)
转换为半径(x1,y1)
R
的二维{{1}}坐标的数学表达式,其中x1和y1的值是原点的{-90°.. + 90°}的视角。
curvilinear perspective
(来源:)
(图片来自ntua.gr)
谢谢!
答案 0 :(得分:10)
大约一年后,解决方案非常简单。 对于坐标为:
的点(x1,y1,z1)
然后,在半径 R 的曲线图中转换这一点:
dist=sqrt(x1^2 + y1^2 + z1^2)
x= R*(1+x/dist)
y= R*(1+y/dist)
我现在可以生成自己的图画(图片来自维基百科): - )
答案 1 :(得分:3)
您可能首先需要使用变换矩阵在2D平面上投影3D对象。 http://en.wikipedia.org/wiki/Graphical_projection,选择最适合您需求的那个。
作为第二步,您将需要使用常规转换将坐标带入欧几里德空间。 http://en.wikipedia.org/wiki/Curvilinear_coordinates