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

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

procedure RotateX


ANTPro ©   (2007-09-17 20:02:00) 

Может кто-нибуть обьяснить философский смысл параметра 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;


ANTPro   (2007-09-17 22:24:00) [1]

Всем спасибо. Я все понял :)


icWasya   (2007-09-17 22:12:00) [2]

Калька с языка C.

и подразумевается такое использование

Var
 Vectors : array of T3DPointRec;

...

RotateX(@ Vectors[0], Length(Vectors), Angle);


ANTPro   (2007-09-17 21:48:00) [3]

> [6] Вася Правильный   (17.09.07 21:15)
> поворот по заданному кол-ву осей?

Если Count=1, то по X. А если больше, то что-то непонятное :(

> [6] Вася Правильный   (17.09.07 21:15)
> а const - чтоб адрес не заменили, а только содержимое по
> нему

А с varразве не тоже самое будет?


Вася Правильный   (2007-09-17 21:15:00) [4]

поворот по заданному кол-ву осей?
а const - чтоб адрес не заменили, а только содержимое по нему


ANTPro   (2007-09-17 21:15:00) [5]

> [5] Сергей М. ©   (17.09.07 21:09)
О процедуре у тебя идет речь ..

Ясно :)


Сергей М.   (2007-09-17 21:09:00) [6]


> ANTPro ©   (17.09.07 20:59) [4]


Какой нафих "результат" ?

О процедуреу тебя идет речь ..


ANTPro   (2007-09-17 20:59:00) [7]

> [3] Сергей М. ©   (17.09.07 20:38)

Если ты говоришь про результат, то ты неправ. Она возвращает результат(в Point), несмотря на const.


Сергей М.   (2007-09-17 20:38:00) [8]


> ANTPro ©   (17.09.07 20:35) [2]


Подозреваю, что в первой реализации процедураделает попросту бестолковую работу)


ANTPro   (2007-09-17 20:35:00) [9]

> [1] Сергей М. ©   (17.09.07 20:21)

Врядли, что делает функция при Count=1я и так знаю. Меня смущает такая реализация :/


Сергей М.   (2007-09-17 20:21:00) [10]

Эта хрень, пожалуй, более известна нашим многоуважаемым игролепам

http://www.delphimaster.ru/cgi-bin/forum.pl?n=9


Наверх

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