Curvilinear perspective:将3D转换为2D

问题描述 投票:15回答:2

我正在寻找将三维坐标(x0,y0,z0)转换为半径为(x1,y1)curvilinear perspective中的二维R坐标的数学表达式,其中x1和y1的值是原点的{-90°.. + 90°}的视角。 。

image (来源:ntua.gr

(图片来自http://www.ntua.gr/arch/geometry/mbk/histor.htm

谢谢 !

math 3d drawing 2d perspective
2个回答
10
投票

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

(x1,y1,z1)

然后,在半径为R的曲线图中转换这一点:

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

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

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


3
投票

您可能首先需要使用变换矩阵在2D平面上投影3D对象。 http://en.wikipedia.org/wiki/Graphical_projection,选择最适合您需求的产品。

作为第二步,您将需要使用常规转换将坐标带入欧几里德空间。 http://en.wikipedia.org/wiki/Curvilinear_coordinates

© www.soinside.com 2019 - 2024. All rights reserved.