Криволинейная перспектива: конвертировать 3D в 2D
-
10-07-2019 - |
Вопрос
Я ищу математическое выражение, преобразующее трехмерную координату (x0, y0, z0)
в двумерную (x1, y1)
координату в криволинейная перспектива радиуса R
, где значения x1 и y1 являются углами виды {-90 ° .. + 90 °} исходной точки.
(источник: ntua.gr )
(изображение через http://www.ntua.gr/arch/ geometry / mbk / history.htm )
Спасибо!
Решение
Примерно через год решение было действительно простым. Для точки, имеющей координаты:
(x1,y1,z1)
Затем, чтобы преобразовать эту точку в криволинейном чертеже радиуса R :
dist=sqrt(x1^2 + y1^2 + z1^2)
x= R*(1+x/dist)
y= R*(1+y/dist)
Теперь я могу создавать свои собственные рисунки (изображение из Википедии): -)
р>
Другие советы
Сначала вам может понадобиться использовать матрицу преобразования для проецирования 3D-объекта на 2D-плоскость. http://en.wikipedia.org/wiki/Graphical_projection , выберите наиболее подходящий ваши потребности.
В качестве второго шага вы захотите использовать общие преобразования, чтобы привести координаты в евклидово пространство. http://en.wikipedia.org/wiki/Curvilinear_coordinates