|
#1
|
|||
|
|||
DelphiX и углы
Есть спрайт, который при перемещении мышки, как бы смотрит на нее (как в Crimsonland).
Я вычисляю угол между осью X и прямой заданной парой координат. Angle=180*ArcTan2(y1-y2,x1-x2)/pi. Но угол получается неверно, тогда для проверки, я просто начал в цикле вращать спрайт на 1 угол до 360, и получилось, что 90 - это не 90 градусов, а 68 с копейками, причем разница увеличивается. Че за Хрень? P.S. Делал примерно тоже самое (без спрайтов есесно), но на канве формы - все пучком! |
#2
|
|||
|
|||
Все, нашел и доделал.
Код:
function TForm1.GetAngle(x1,y1,x2,y2:single):single; begin Result:=180*ArcTan2(y2-y1,x2-x1)/pi+90; if x1>x2 then Result:=Result+180 else Result:=Result-180; Result:=180*Result/255; end; |