Криволинейная перспектива: Преобразуйте 3D в 2D

Одна вещь опасаться состоит в том, как выйти из Универсального.ForEach метода - см. это обсуждение . Хотя в ссылке, кажется, говорится, что этот путь самый быстрый. Не уверенный, почему - Вы думали бы, что они будут эквивалентны когда-то скомпилированные...

15
задан Glorfindel 3 April 2019 в 22:59
поделиться

2 ответа

Примерно через год решение оказалось действительно простым. Для точки с координатами:

(x1,y1,z1)

Затем, преобразовать эту точку в криволинейный чертеж радиуса R:

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

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

Теперь я могу генерировать свои собственные чертежи (изображение из википедии) :-)

Curvilinear drawing.

10
ответ дан 1 December 2019 в 04:41
поделиться

Вам может потребоваться сначала использовать матрицу преобразования для проецирования 3D-объекта на 2D-плоскость. http://en.wikipedia.org/wiki/Graphical_projection , выберите тот, который лучше всего соответствует вашим потребностям.

В качестве второго шага вы затем захотите использовать общие преобразования, чтобы вывести координаты в евклидово пространство. http://en.wikipedia.org/wiki/Curvilinear_coordinates

3
ответ дан 1 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: