@Walter Какие подразделения вы считаете расточительными? Я долго размышлял, но не смог распознать ничего лишнего.

тоящее время я работаю с использованием кривых Безье и поверхностей для рисования знаменитого чайника из Юты. Используя патчи Безье из 16 контрольных точек, я смог нарисовать чайник и отобразить его, используя функцию «мир в камеру», которая дает возможность вращать полученный чайник, и в настоящее время я использую ортографическую проекцию.

Результатом является то, что у меня есть «плоский» чайник, который, как ожидается, является целью ортогональной проекции - сохранить параллельные линии.

Тем не менее, я хотел бы использовать перспективную проекцию, чтобы придать чайнику глубину. Мой вопрос: как взять 3D-вершину XYZ, возвращенную из функции «мир в камеру», и преобразовать ее в 2D-координату. Я хочу использовать плоскость проецирования при z = 0 и позволить пользователю определять фокусное расстояние и размер изображения с помощью клавиш со стрелками на клавиатуре.

Я программирую это на Java, и у меня есть все настроенные обработчики входных событий, а также я написал матричный класс, который обрабатывает базовое умножение матриц. Некоторое время я читал википедию и другие ресурсы, но не могу понять, как можно выполнить это преобразование.

Ответы на вопрос(10)

Ваш ответ на вопрос