Преобразование 3D-координат точки в 2D-координаты в перспективе
01.01.2007
{ **** 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;