Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
4-1176208381
Mabia
2007-04-10 16:33
2007.10.14
Создание exe файла


15-1189669246
Vlad Oshin
2007-09-13 11:40
2007.10.14
Идея написать программку - статистика футбола, например


15-1190042730
Nikfel
2007-09-17 19:25
2007.10.14
Как пользоваться китайскими палочками.


15-1189774018
Василий
2007-09-14 16:46
2007.10.14
Розыскивается bzlib для D7


15-1190103143
Jeer
2007-09-18 12:12
2007.10.14
Кому нужен BlackFish SQL (риторический вопрос)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский