Curvilinear perspective: Convert 3D to 2D

寵の児 提交于 2019-12-20 09:37:41

问题


I'm looking for the mathematical expression converting a 3D coordinate (x0,y0,z0) to a 2D (x1,y1) coordinate in a curvilinear perspective of radius R where the values of x1 and y1 are the angles of views {-90° .. +90°} of the original point.


(source: ntua.gr)

(image via http://www.ntua.gr/arch/geometry/mbk/histor.htm )

Thanks !


回答1:


About one year later , the solution was really simple. For a point having the coordinates:

(x1,y1,z1)

Then, to transform this point in a curvilinear drawing of radius R:

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

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

I can now generate my own drawings (image via wikipedia) :-)




回答2:


You may first need to use a transformation matrix to project the 3D object on a 2D plane. http://en.wikipedia.org/wiki/Graphical_projection, choose the one that best fits your needs.

As a second step, you will then want to use the general conversions to bring the coordinates into the Euclidian space. http://en.wikipedia.org/wiki/Curvilinear_coordinates



来源:https://stackoverflow.com/questions/1222025/curvilinear-perspective-convert-3d-to-2d

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!