1) Задача сводится к проецированию одной точки (а потом ещё одной, а потом ещё одной, а потом соединяем линиями и т.д.).
2) Для того, спроецировать точку на плоскость, неплохо было бы задать эту плоскость (например, уравнением Ax+By+Cz+D=0), а также указать тип проекции (центральная или параллельная) и координаты центра (для центральной проекции) или компоненты вектора проецирования (для параллельной проекции).
3) Также нужно ввести на проектирующей плоскости систему координат экрана, т.е. задать на ней точки, соответствующие (0,0), (0,1) и (1,0) экранных координат.
Для примера ограничусь центральной проекцией.
3) Пусть началу экранных координат (0,0) соответствует точка
![$(x_{00}, y_{00}, z_{00})$ $(x_{00}, y_{00}, z_{00})$](https://dxdy-03.korotkov.co.uk/f/2/7/3/273833e1afafa3610cfdf5ddf0fe406882.png)
, экранным координатам (0,1) --- точка
![$(x_{01}, y_{01}, z_{01})$ $(x_{01}, y_{01}, z_{01})$](https://dxdy-01.korotkov.co.uk/f/8/7/9/8795b7060544a066a2e66c430bc6eb9082.png)
, экранным координатам (1,0) --- точка
![$(x_{10}, y_{10}, z_{10})$ $(x_{10}, y_{10}, z_{10})$](https://dxdy-02.korotkov.co.uk/f/d/5/8/d58fc0a2e61a2a8148f533f0ba83a5df82.png)
. Эти 3 точки определяют плоскость, которая сопоставляет экранным координатам (p, q) точку
![$(x_{pq}, y_{pq}, z_{pq})$ $(x_{pq}, y_{pq}, z_{pq})$](https://dxdy-03.korotkov.co.uk/f/2/f/1/2f1f3af1ffc444b291830f500b143d9782.png)
по следующим формулам:
Эта же плоскость, разумеется, является плоскостью проекции.
2) Пусть центр проекции ---
![$(x_0, y_0, z_0)$ $(x_0, y_0, z_0)$](https://dxdy-03.korotkov.co.uk/f/2/5/4/2541ffecf04b9fa8c70b909f9c2a376882.png)
. Для получения экранных координат проекции (p, q) произвольной точки
![$(x_1, y_1, z_1)$ $(x_1, y_1, z_1)$](https://dxdy-04.korotkov.co.uk/f/b/e/d/bed6c16b250d138a52adc3385662582a82.png)
на плоскость проекции нужно решить систему уравнений:
Подставив сюда выражения для
![$x_{pq}$ $x_{pq}$](https://dxdy-04.korotkov.co.uk/f/3/a/6/3a64fb4a3424ac7a4fbe15d5a1e9813382.png)
,
![$y_{pq}$ $y_{pq}$](https://dxdy-03.korotkov.co.uk/f/e/1/f/e1f3c1c570882b86cea653f1a3b8aca982.png)
,
![$z_{pq}$ $z_{pq}$](https://dxdy-01.korotkov.co.uk/f/4/5/b/45b3e3ea2117895b070576b5d18f29b382.png)
из п. 3), получим систему из 3-х уравнений на 2 переменные --- p и q. Система переопределена, но имеет единственное решение, если
![$(x_1, y_1, z_1)$ $(x_1, y_1, z_1)$](https://dxdy-04.korotkov.co.uk/f/b/e/d/bed6c16b250d138a52adc3385662582a82.png)
не совпадает с
![$(x_0, y_0, z_0)$ $(x_0, y_0, z_0)$](https://dxdy-03.korotkov.co.uk/f/2/5/4/2541ffecf04b9fa8c70b909f9c2a376882.png)
, и прямая, проходящая через эти 2 точки, не параллельна плоскости проекции. Для получения этого решения достаточно взять 2 линейно независимых уравнения системы (в типичном случае любые 2, но в вырожденных случаях одно из уравнений может выродиться в 0=0).