我正在尝试使用Perl中的atan2()计算AB段与水平轴的角度。 Perl文档说明
atan2 Y,X 返回-PI到PI的范围内的Y / X的反正切值。
以下子程序:
sub computeAngle($$$$){
my($x1_, $y1_, $x2_, $y2_) = @_;
$result = 0;
$result = atan2($y2_-$y1_, $x2_-$x1_)*360/3.14159265359;
print " Angle= $result°\n";
return $result;
}
生成区间之外的值:
0 0 -30.7933862796053 216.100103110075角度= 196.219639131902°
0 0 -81.245545537211 -11.7299860790372角度= -343.569155014717°
为什么会这样?
答案 0 :(得分:4)
您的转换不正确;你应该乘以 180 ,而不是 360 :
$result = atan2($y2_-$y1_, $x2_-$x1_)*180/3.14159265359;