Преобразование 3D-координат точки в 2D-координаты в перспективе |
Previous Top Next |
Code: |
{ **** UBPFD *********** by kladovka.net.ru **** >> Преобразование 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; |
©Drkb::04124