Преобразование 3D-координат точки в 2D-координаты в перспективе

Советы » Графика » Преобразование 3D-координат точки в 2D-координаты в перспективе

{ **** 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com