窗口设计不过多介绍。
前方交会最主要的是计算,以下为主要的计算程序:
首先对已知的角度进行转化,将角度转化为弧度制:
a1 = a1 + b1 / 60 + c1 / 3600;
anga = a1 / 180 * Math.PI;
a2 = a2 + b2 / 60 + c2 / 3600;
angb = a2 / 180 * Math.PI;
利用弧度制对坐标进行计算:
xp = (xa*(1/Math.Tan(angb))+xb*(1/Math.Tan(anga))+(yb-ya))/(1/Math.Tan(angb)+1/ Math.Tan(anga));
yp = (ya*(1/Math.Tan(angb))+yb*(1/Math.Tan(anga))+(xa-xb))/(1/Math.Tan(angb)+1/ Math.Tan(anga));
主要程序设计:
private void button1_Click(object sender, EventArgs e)//计算按钮
{
double xa, ya, xb, yb, xp, yp,a1,b1,c1,a2,b2,c2 ,anga, angb;
xa = Convert.ToDouble(textBox1.Text);
ya = Convert.ToDouble(textBox2.Text);
xb = Convert.ToDouble(textBox3.Text);
yb = Convert.ToDouble(textBox4.Text);
a1 = Convert.ToDouble(textBox5.Text);
b1 = Convert.ToDouble(textBox9.Text);
c1 = Convert.ToDouble(textBox10.Text);
a2 = Convert.ToDouble(textBox6.Text);
b2 = Convert.ToDouble(textBox11.Text);
c2 = Convert.ToDouble(textBox12.Text);
a1 = a1 + b1 / 60 + c1 / 3600;
anga = a1 / 180 * Math.PI;
a2 = a2 + b2 / 60 + c2 / 3600;
angb = a2 / 180 * Math.PI;
xp = (xa * (1 / Math.Tan(angb)) + xb * (1 / Math.Tan(anga)) + (yb - ya)) / (1 / Math.Tan(angb) + 1 / Math.Tan(anga));
yp= (ya * (1 / Math.Tan(angb)) + yb * (1 / Math.Tan(anga)) + (xa - xb)) / (1 / Math.Tan(angb) + 1 / Math.Tan(anga));
textBox7.Text = Convert.ToString(xp);
textBox8.Text = Convert.ToString(yp);
}