• Программирование
  • C++
  • Краткое рассмотрение проецирования трехмерных объектов на двухмерный дисплей

Краткое рассмотрение проецирования трехмерных объектов на двухмерный дисплей

ОГЛАВЛЕНИЕ

Данная статья простыми словами описывает, как преобразовать трехмерные координаты в двухмерные координаты для отображения на экране.

•    Скачать исходники - 67 Кб
•    Скачать демонстрационный проект - 34 Кб

Это введение в основы отрисовки трехмерных изображений, не охватывающее такие темы, как вращение или движение.

Несколько основных определений и допущений

Работа пойдет в стандартной прямоугольной системе координат, изображенной на Рисунке 1.

где: o – начало координат
+x - вправо (-x - влево)
+y - вверх (-y - вниз)
+z - вперед (-z - противоположное направление)

Положение точки в этом трехмерном пространстве можно представить как P(x, y, z), представляющий положение точки относительно определенного выше начала координат. Многоугольник является набором таких точек, соединенных линиями.

Затем надо определить точку, откуда смотрят (точку обзора). Это будет положение камеры E. Для упрощения объяснения камера будет помещена в начало координат (0, 0, 0). Позже в этой статье камера будет отодвинута от начала координат. Другое упрощение делается за счет допущения, что камера всегда смотрит вдоль оси Z в сторону +Z. Если это не так, то математика усложняется, и это не рассматривается здесь.

Наконец, надо проецировать изображение на экран S. Он всегда будет на плоскости, перпендикулярной направлению взгляда, и на расстоянии Sz от начала координат. Предполагается, что этот экран может расширяться так далеко, как требуется. Рисунок 2 показывает текущую ситуацию: