Преобразование 3D-координат точки в 2D-координаты в перспективеDelphi , Графика и Игры , ГрафикаПреобразование 3D-координат точки в 2D-координаты в перспективе
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Преобразование 3D-координат точки в 2D-координаты в перспективе Процедура преобразует 3D-координаты точки в 2D-координаты на "картинной плоскости" в перспективе. В качестве параметров процедура принимает координаты точки в пространстве (X - горизонтальная перпендикулярно лучу зрения, Y - горизонтальная вдоль луча зрения, Z - вертикальная) начало координат - точка пересечения луча зрения с картинной плоскостью; Height - высоту наблюдателя; Basis - расстояние от наблюдателя до картинной плоскости; результаты вычисления записываются в переменные XP и YP - координаты точки на картинной плоскости. Зависимости: нет Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov, 1995 Дата: 29 апреля 2002 г. ***************************************************** } procedure Perspective(const X, Y, Z, Height, Basis: Double; var XP, YP: Double); var Den: Double; begin Den := Y + Basis; if Abs(Den) < 1E-100 then Den := 1E-100; XP := Basis * X / Den; YP := (Basis * Z + Height * Y) / Den; end; Статья Преобразование 3D-координат точки в 2D-координаты в перспективе раздела Графика и Игры Графика может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |