Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите понять смысл кода.


@!!ex ©   (2007-12-25 09:27:00) 

Прислали мне наднях демку, в одном месте используется вот такая процедура:
procedure VectorRotateX(const v: TVector; a: single; out FinishVector:TVector);
var
ty: single;
begin
    ty:=v.Y;
    FinishVector.Y:=v.Y * Cos(a) - (v.Z * Sin(a));
    FinishVector.Z:= ty * Sin(a) + (v.Z * Cos(a));
    FinishVector:=v
end;


Разве в результате работы вектор будет повернут???


Сергей М.   (2007-12-25 09:37:00) [1]


> никогда не работал с out


out здесь ни причем.


@!!ex   (2007-12-25 09:37:00) [2]

> [6] Сергей М. ©   (25.12.07 09:37)

понял. спасибо за разъяснения!


Сергей М.   (2007-12-25 09:36:00) [3]


> FinishVector:=v


FinishVector .X:= v .X


@!!ex   (2007-12-25 09:35:00) [4]

> [2] Сергей М. ©   (25.12.07 09:34)

Я просто никогда не работал с out, поэтому и спросил, вдруг там какая то особенная логика...


Сергей М.   (2007-12-25 09:34:00) [5]


> Разве в результате работы вектор будет повернут?


Нет конечно. Ошибка в предпосл.строчке кода очевидна.


@!!ex   (2007-12-25 09:34:00) [6]

> [1] Сергей М. ©   (25.12.07 09:31)

FinishVector:=v;
Разве оно все вычисления не затрет??


Сергей М.   (2007-12-25 09:31:00) [7]

Вращение исходного 3D-вектора vотносительно оси X на угол aс записью результирующего вектора в FinishVector.


Наверх

Титульная страница Поиск, карта сайта Написать письмо