Math.Atan2的基本讲解(C#版本)
Math.Atan2(y-centerY,x-centerX)
即Math.Atan2(y-c_y,x-c_x)
以centerY,centerX为圆心,(x,y)线段所代表的角度
注意:
第一参数传入y
第二参数传入x
一 Math.Atan2(y_distance,x_distance)
输出的是弧度值radian
Math.Atan2传入参数,有两个:y_distance,x_distance
y_distance:表示y-centerY,y是坐标系中的y坐标,centerY表示坐标系的圆心y
x_distance:表示x-centerX,x是坐标系中的y坐标,centerX表示坐标系的圆心x
Math.Atan2(y_distance,x_distance)
Math.Atan2(y_distance-0,x_distance-0)
即以 0 0点为圆心,y_distance,x_distance为 y x的坐标点,所代表的角度
即以 centerY, centerX点为圆心,y,x为 y x的坐标点,所代表的角度
即Math.Atan2(y-centerY,x-centerX)
举例
Math.Atan2(85-0,85-0)
Math.Atan2(10-0,10-0)
Math.Atan2(3-0,3-0)
都是45度
private void Button_Click(object sender, RoutedEventArgs e)
{
var angle1_AS = Math.Atan2(85-0,85-0) * 180 / Math.PI;
MessageBox.Show(angle1_AS.ToString());
var angle1_AS2 = Math.Atan2(10-0,10-0) * 180 / Math.PI;
MessageBox.Show(angle1_AS2.ToString());
var angle1_AS3 = Math.Atan2(3-0,3-0) * 180 / Math.PI;
MessageBox.Show(angle1_AS3.ToString());
}
Math.Atan2(5-4,4-3)
Math.Atan2(6-4,5-3)
Math.Atan2(7-4,6-3)
还都是45度
private void Button_Click(object sender, RoutedEventArgs e)
{
var angle1_AS = Math.Atan2(5 - 4, 4 - 3) * 180 / Math.PI;
MessageBox.Show(angle1_AS.ToString());
var angle1_AS2 = Math.Atan2(6 - 4, 5 - 3) * 180 / Math.PI;
MessageBox.Show(angle1_AS2.ToString());
var angle1_AS3 = Math.Atan2(7 - 4, 6 - 3) * 180 / Math.PI;
MessageBox.Show(angle1_AS3.ToString());
}
二 Math.Atan2(y_distance,x_distance) * 180 / Math.PI
* 180 / Math.PI
弧度值radian转角度