Какова цель использования (height / 2.0) / tan(PI / 6) в качестве Z-позиции камеры?

#3d #processing

#3D #обработка

Вопрос:

Кто-нибудь может объяснить, почему они делят положение камеры z на tan(PI / 6), вместо того, чтобы просто умножать его на произвольное число с плавающей запятой?

Это функция camera() в обработке, и я пытаюсь понять ее параметры по умолчанию.


синтаксис

 camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
 

параметр по умолчанию

 camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0)
 

Комментарии:

1. Я думаю, потому что это более точно, чем постоянное деление с плавающей точкой

2. При перспективной проекции проецируемый размер объекта зависит от расстояния до камеры. Это всего лишь эмпирическая формула, которая должна давать подходящее расстояние в зависимости от высоты окна и поля зрения.

Ответ №1:

При перспективной проекции проецируемый размер объекта зависит от расстояния до камеры. Это всего лишь эмпирическая формула, которая должна давать подходящее расстояние в зависимости от высоты окна и поля зрения.

В перспективной проекции матрица проекции описывает отображение 3D-точек в мире, видимых с камеры-обскуры, на 2D-точки в окне просмотра. Объем просмотра представляет собой усеченное число.