double dx, dy,jiao;//x,y方向的增量,jiao是abs(dx/dy)
double ab=0, ba=0;//方向角
if (t1.Text == "" || t2.Text == "" || t3.Text == "" || t4.Text == "")//坐标没写完
{
MessageBox.Show("请输入坐标!","提示");
}
else
{
A.X = Convert.ToDouble(t1.Text);//从文本框读入坐标
A.Y = Convert.ToDouble(t2.Text);
B.X = Convert.ToDouble(t3.Text);
B.Y = Convert.ToDouble(t4.Text);
dx = B.X - A.X;//计算增量
dy = B.Y - A.Y;
jiao =Math .Abs (dx /dy);
if (dx >= 0 && dy >= 0)//四个象限的不同情况
{
ab = Math.Atan(jiao) ;
ba = ab + PI;
}
if (dx < 0 && dy > 0)
{
ab = 2 * PI - Math.Atan(jiao) ;
ba = PI - Math.Atan(jiao) ;
}
if (dx <= 0 && dy <= 0)
{
ab = Math.Atan(jiao) + PI;
ba = Math.Atan(jiao) ;
}
if (dx > 0 && dy < 0)
{
ab = PI - Math.Atan(jiao);
ba = 2 *PI - Math.Atan(jiao) ;
}
ab = ab / PI * 180;//弧度转角度
ba = ba / PI * 180;
l1.Text = Math.Floor(ab).ToString();//输出
l2.Text = Math.Floor((ab - Math.Floor(ab)) * 60).ToString();//floor:向下取整
l3.Text = Math.Floor(((ab - Math.Floor(ab)) * 60 - Math.Floor((ab - Math.Floor(ab)) * 60)) * 60).ToString();
l4.Text = Math.Floor(ba).ToString();
l5.Text = Math.Floor((ba - Math.Floor(ba)) * 60).ToString();
l6.Text = Math.Floor(((ba - Math.Floor(ba)) * 60 - Math.Floor((ba - Math.Floor(ba)) * 60)) * 60).ToString();
double ab=0, ba=0;//方向角
if (t1.Text == "" || t2.Text == "" || t3.Text == "" || t4.Text == "")//坐标没写完
{
MessageBox.Show("请输入坐标!","提示");
}
else
{
A.X = Convert.ToDouble(t1.Text);//从文本框读入坐标
A.Y = Convert.ToDouble(t2.Text);
B.X = Convert.ToDouble(t3.Text);
B.Y = Convert.ToDouble(t4.Text);
dx = B.X - A.X;//计算增量
dy = B.Y - A.Y;
jiao =Math .Abs (dx /dy);
if (dx >= 0 && dy >= 0)//四个象限的不同情况
{
ab = Math.Atan(jiao) ;
ba = ab + PI;
}
if (dx < 0 && dy > 0)
{
ab = 2 * PI - Math.Atan(jiao) ;
ba = PI - Math.Atan(jiao) ;
}
if (dx <= 0 && dy <= 0)
{
ab = Math.Atan(jiao) + PI;
ba = Math.Atan(jiao) ;
}
if (dx > 0 && dy < 0)
{
ab = PI - Math.Atan(jiao);
ba = 2 *PI - Math.Atan(jiao) ;
}
ab = ab / PI * 180;//弧度转角度
ba = ba / PI * 180;
l1.Text = Math.Floor(ab).ToString();//输出
l2.Text = Math.Floor((ab - Math.Floor(ab)) * 60).ToString();//floor:向下取整
l3.Text = Math.Floor(((ab - Math.Floor(ab)) * 60 - Math.Floor((ab - Math.Floor(ab)) * 60)) * 60).ToString();
l4.Text = Math.Floor(ba).ToString();
l5.Text = Math.Floor((ba - Math.Floor(ba)) * 60).ToString();
l6.Text = Math.Floor(((ba - Math.Floor(ba)) * 60 - Math.Floor((ba - Math.Floor(ba)) * 60)) * 60).ToString();