Форум: "Игры";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
ВнизУпростите пожалуйста формулу... Найти похожие ветки
← →
Ландграф Павел © (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c