我需要帮助让下面的代码更高效,并使其更加简洁。
如此图像所示,x和y可以是屏幕上任何点,我正在尝试找到角度t。有没有办法减少这里的行数?
注意:原点在左上角,向右/向下移动是正方向。
如此图像所示,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;
这段代码是用Pascal编写的,但使用类似语法的其他语言、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