Преобразование 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