Форум: "Начинающим";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];
Внизпомогите понять смысл кода. Найти похожие ветки
← →
@!!ex © (2007-12-25 09:27) [0]Прислали мне наднях демку, в одном месте используется вот такая процедура:
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:31) [1]Вращение исходного 3D-вектора v относительно оси X на угол a с записью результирующего вектора в FinishVector.
← →
Сергей М. © (2007-12-25 09:34) [2]
> Разве в результате работы вектор будет повернут?
Нет конечно. Ошибка в предпосл.строчке кода очевидна.
← →
@!!ex © (2007-12-25 09:34) [3]> [1] Сергей М. © (25.12.07 09:31)
FinishVector:=v;
Разве оно все вычисления не затрет??
← →
@!!ex © (2007-12-25 09:35) [4]> [2] Сергей М. © (25.12.07 09:34)
Я просто никогда не работал с out, поэтому и спросил, вдруг там какая то особенная логика...
← →
Сергей М. © (2007-12-25 09:36) [5]
> FinishVector:=v
FinishVector.X := v.X
← →
Сергей М. © (2007-12-25 09:37) [6]
> никогда не работал с out
out здесь ни причем.
← →
@!!ex © (2007-12-25 09:37) [7]> [6] Сергей М. © (25.12.07 09:37)
понял. спасибо за разъяснения!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c