PDA

Просмотр полной версии : атан2


supernewbie
30.10.2010, 14:45
выложите функцию атан2 под фс) а то там тока первый

xkor
30.10.2010, 16:09
supernewbie, а чем первый не устраивает?)

supernewbie
30.10.2010, 17:39
так ведь там y и x, все такое)

xkor
30.10.2010, 21:45
supernewbie, и?

supernewbie
31.10.2010, 12:20
не знаю уже блин) никак не получается рассчитать угол поворта перса при движении его

Добавлено через 15 часов 32 минуты
нашел :)

атан2:
function sgn (a : real) : real;
begin
if a < 0 then result := -1
else result := 1;
end;

function atan2(y, x : real) : real;
begin
if x > 0 then result := arctan (y/x)
else if x < 0 then result := arctan (y/x) + pi
else result := pi/2 * sgn (y);
end;

а вот функция которая вернет ваш угол поворота в л2 по начальным и конечным координатам движения:
function GetDegreeFromMoveToLolation(x1,y1,x2,y2:integer) : real;
var
x,y:integer;

begin
x:=x1-x2;
y:=y1-y2;
result:=atan2(y,x);
result:=result+(pi/2);
result:=(result/pi)*180+90;
if result>360 then result:=result-360;
if result<0 then result:=result+360;
end;