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

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

Упростите пожалуйста формулу...


Ландграф Павел ©   (2005-04-10 20:37:00) 

Непомню где видел, но была такая формулка в исходниках (математик из меня как из Ельцина человек)
FAngle:=((Trunc(RadToDeg(ArcTan2(FNextY*32-FY,FNextX*32-FX)+202.5) div 45)*45)-180;
, где
FNextX, FNextY - следующая на пути клетка
FX, FY - координаты зверушки
Дык, вот, как енту формулу можно упростить до нормального вида, из-за погрешностей она иногда неправельно вычисляет угол, и анимация "скачет" (иногда)


Ландграф Павел   (2005-04-11 20:09:00) [1]

dRake> ну хорошо талантам как ты, все знаешь для чего...


dRake   (2005-04-11 16:18:00) [2]

2 Павел

>если б знать... не я же ее придумал=))

Вот это жесть :) Юзать формулы не зная что они делают..


Ландграф Павел   (2005-04-11 16:07:00) [3]

Ну вот это другое дело, спасибо!=)


MBo   (2005-04-11 15:17:00) [4]

IntFi:=45*Round(ArcTan2(Y-YCurrent,X-XCurrent)*4/Pi);
if IntFi=-180 then
 IntFi:=180;


Ландграф Павел   (2005-04-11 15:00:00) [5]

=) требуется посчитать угол между зверушкой и следующей клеткой куда премся, получить результат в виде 0, 45, 90, 135, -135, -90, -45, -180 и поставить анимацию с нужным углом.
Ента формула именно это и делает, но видимо плохо=)


A22   (2005-04-11 14:49:00) [6]

ты лучше объясни толком что требуется запрограммировать (отвлекись от формулы), так проще будет :)


Ландграф Павел   (2005-04-11 13:52:00) [7]

если б знать... не я же ее придумал=))


A22   (2005-04-11 11:26:00) [8]

кхм... ничего не понял. если тебе угол между осью Х и прямой по точкам p1,p2, то это будет просто arctg(dy/dx). в программировании - atan2f(dy, dx). зачем там что-то умножать, делить нацело на 45, переводить в градусы и тут же умножать на 45... чего делается-то?


XProger   (2005-04-11 00:54:00) [9]

Скачет не из-за погрешности...


Наверх

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