Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.25;
Скачать: CL | DM;

Вниз

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

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

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


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

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


 
A22 ©   (2005-04-11 11:26) [2]

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


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

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


 
A22 ©   (2005-04-11 14:49) [4]

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


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

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


 
MBo ©   (2005-04-11 15:17) [6]

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


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

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


 
dRake ©   (2005-04-11 16:18) [8]

2 Павел

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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2005.07.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
6-1113810149
cherrex
2005-04-18 11:42
2005.07.25
TIdFTP


4-1117293373
Greg123
2005-05-28 19:16
2005.07.25
Как сделать чтобы окно всегда было поверх остальных окон


1-1120820338
Дмитрий_05
2005-07-08 14:58
2005.07.25
Как сделать чтобы Memo прокрутился вниз


14-1120381109
аматор
2005-07-03 12:58
2005.07.25
текстовой редактор


1-1120728956
Aleksandr.
2005-07-07 13:35
2005.07.25
Объясните мне, на что заменять AssignStr, NewStr, DisposeStr?