Мне нужна помощь, чтобы сделать мой код ниже более эффективным и немного почистить его.Как сделать код тригонометрии более эффективным
Как показано на этом image, x и y могут быть любой точкой вокруг всего экрана, и я пытаюсь найти угол t. Есть ли способ уменьшить количество строк здесь?
Примечание: Происхождение находится в верхнем левом углу, и движется вправо/вниз движется в положительном направлении
o := MiddleOfScreenX - x;
a := MiddleOfScreenY - y;
t := Abs(Degrees(ArcTan(o/a)));
if(x > MiddleOfScreenX)then
begin
if(y > MiddleOfScreenY)then
t := 180 + t
else
t := 360 - t;
end
else
if(y > MiddleOfScreenY)then
t := 180 - t;
код находится в паскале, но ответы на других языках с подобным синтаксисом или C++ или java тоже прекрасны.
:= sets the variable to that value
Abs() result is the absolute of that value (removes negatives)
Degrees() converts from radians to degrees
ArcTan() returns the inverse tan
Большое спасибо за вашу помощь, да, что существует точная функция, и она отлично работает (как только я выберу «Abs()»). – putonajonny
Я достал абс, извините за ошибку. –