Текущий архив: 2007.10.14;
Скачать: CL | DM;
Вниз
procedure RotateX Найти похожие ветки
← →
ANTPro © (2007-09-17 20:02) [0]Может кто-нибуть обьяснить философский смысл параметра
Count
и почему используетсяconst
, а неvar
?
type
T3DPointRec = record
case Boolean of
False: (X, Y, Z, S: Extended);
True: (Vector: array[0..3] of Extended);
end;
P3DPointRec = ^T3DPointRec;
...
procedure RotateX(const Point: P3DPointRec; const Count: Integer; const Angle: Extended);
var
S, C: Extended;
Y, Z: Extended;
I: Integer;
P: P3DPointRec;
begin
SinCos(Angle, S, C);
P := Point;
for I := 1 to Count do
begin
Y := P^.Y;
Z := P^.Z;
P^.Y := C * Y - S * Z;
P^.Z := S * Y + C * Z;
Inc(P);
end;
end;
Почему не так?
procedure RotateX(var Point: T3DPointRec; const Angle: Extended);
var
S, C: Extended;
Y, Z: Extended;
begin
SinCos(Angle, S, C);
Y := Point.Y;
Z := Point.Z;
Point.Y := C * Y - S * Z;
Point.Z := S * Y + C * Z;
end;
← →
Сергей М. © (2007-09-17 20:21) [1]Эта хрень, пожалуй, более известна нашим многоуважаемым игролепам
http://www.delphimaster.ru/cgi-bin/forum.pl?n=9
← →
ANTPro © (2007-09-17 20:35) [2]> [1] Сергей М. © (17.09.07 20:21)
Врядли, что делает функция приCount=1
я и так знаю. Меня смущает такая реализация :/
← →
Сергей М. © (2007-09-17 20:38) [3]
> ANTPro © (17.09.07 20:35) [2]
Подозреваю, что в первой реализации процедура делает попросту бестолковую работу)
← →
ANTPro © (2007-09-17 20:59) [4]> [3] Сергей М. © (17.09.07 20:38)
Если ты говоришь про результат, то ты неправ. Она возвращает результат(в Point), несмотря наconst
.
← →
Сергей М. © (2007-09-17 21:09) [5]
> ANTPro © (17.09.07 20:59) [4]
Какой нафих "результат" ?
О процедуре у тебя идет речь ..
← →
Вася Правильный (2007-09-17 21:15) [6]поворот по заданному кол-ву осей?
а const - чтоб адрес не заменили, а только содержимое по нему
← →
ANTPro © (2007-09-17 21:15) [7]> [5] Сергей М. © (17.09.07 21:09)
О процедуре у тебя идет речь ..
Ясно :)
← →
ANTPro © (2007-09-17 21:48) [8]> [6] Вася Правильный (17.09.07 21:15)
> поворот по заданному кол-ву осей?
ЕслиCount=1
, то по X. А если больше, то что-то непонятное :(
> [6] Вася Правильный (17.09.07 21:15)
> а const - чтоб адрес не заменили, а только содержимое по
> нему
А сvar
разве не тоже самое будет?
← →
icWasya © (2007-09-17 22:12) [9]Калька с языка C.
и подразумевается такое использование
Var
Vectors : array of T3DPointRec;
...
RotateX(@ Vectors[0], Length(Vectors), Angle);
← →
ANTPro © (2007-09-17 22:24) [10]Всем спасибо. Я все понял :)
Страницы: 1 вся ветка
Текущий архив: 2007.10.14;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.057 c