Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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

Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com

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



Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай



   Rambler's Top100             Яндекс цитирования