大地主题解算-C#

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大地主题解算-正算-C#

大地主题解算-正算-程序

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e) {

int n,du,fen,miao;

double B1, L1, A1, S, dS, dB1, dL1, M1, N1, W1;

double E = 0.006694384999588, a = 6378140, C;

B1 =( Convert.ToDouble(textBox1.Text) + Convert.ToDouble(textBox9.Text)/60 + Convert.ToDouble(textBox10.Text)/3600 )* Math.PI / 180;

L1 = (Convert.ToDouble(textBox2.Text) + Convert.ToDouble(textBox11.Text)/60 + Convert.ToDouble(textBox12.Text)/3600) * Math.PI / 180; ;

A1 = (Convert.ToDouble(textBox3.Text) + Convert.ToDouble(textBox13.Text)/60 + Convert.ToDouble(textBox14.Text)/3600) * Math.PI / 180; ;

S = Convert.ToDouble(textBox5.Text);

n = Convert.ToInt16(textBox4.Text);

double[] L = new double[100000];

double[] B = new double[100000];

double[] dL = new double[100000];

double[] dB = new double[100000];

double[] A = new double[100000];

double[] W = new double[100000];

double[] N = new double[100000];

double[] M = new double[100000];

W1 = Math.Pow(1 - E * Math.Pow(Math.Sin(B1), 2), 0.5);

N1 = a / W1;

M1 = a * (1 - E) / (W1 * W1 * W1);

C = N1 * Math.Sin(A1) * Math.Cos(B1);

dS = S / n;

dB1 = dS * Math.Cos(A1) / M1;

dL1 = dS * Math.Sin(A1) / N1 / Math.Cos(B1);

B[0] = B1;

L[0] = L1;

dB[0] = dB1;

dL[0] = dL1;

A[0] = A1;

M[0] = M1;

N[0] = N1;

W[0] = W1;

int i;

for (i = 1; i < n; i++)

{

dB[i - 1] = dS * Math.Cos(A[i - 1]) / M[i - 1];

B[i] = B[i - 1] + dB[i - 1];

W[i] = Math.Pow(1 - E * Math.Pow(Math.Sin(B[i]), 2), 0.5);

N[i] = a / W[i];

M[i] = a * (1 - E) / (W[i] * W[i] * W[i]);

dL[i - 1] = dS * Math.Sin(A[i - 1]) / (N[i - 1] * Math.Cos(B[i - 1])); L[i] = L[i - 1] + dL[i - 1];

A[i] = Math.Asin(C / (Math.Cos(B[i]) * N[i]));

}

du = Convert.ToInt16(Math.Floor(B[i - 1] * 180 / Math.PI));//du

fen = Convert.ToInt16(Math.Floor((B[i - 1] * 180 / Math.PI - Math.Floor(B[i - 1] * 180 / Math.PI)) * 60)); //fen

miao = Convert.ToInt16(Convert.ToInt16(((B[i - 1] * 180 / Math.PI - Math.Floor(B[i - 1] * 180 / Math.PI)) * 60 - Math.Floor((B[i - 1] * 180 / Math.PI - Math.Floor(B[i - 1] * 180 / Math.PI)) * 60)) * 60));//秒?

textBox6.Text = Convert.ToString(du) + "度è" + Convert.ToString(fen) + "分?" + Convert.ToString(miao) + "秒?";

du = Convert.ToInt16(Math.Floor(L[i - 1] * 180 / Math.PI));//du

fen = Convert.ToInt16(Math.Floor((L[i - 1] * 180 / Math.PI - Math.Floor(L[i - 1] * 180 / Math.PI)) * 60)); //fen

miao = Convert.ToInt16(Convert.ToInt16(((L[i - 1] * 180 / Math.PI - Math.Floor(L[i - 1] * 180 / Math.PI)) * 60 - Math.Floor((L[i - 1] * 180 / Math.PI - Math.Floor(L[i - 1] * 180 / Math.PI)) * 60)) * 60));//秒?

textBox7.Text = Convert.ToString(du) + "度è" + Convert.ToString(fen) + "分?" + Convert.ToString(miao) + "秒?";

du = Convert.ToInt16(Math.Floor((180 + A[i - 1] * 180 / Math.PI)));//du

fen = Convert.ToInt16(Math.Floor(((180 + A[i - 1] * 180 / Math.PI) - Math.Floor((180 + A[i - 1] * 180 / Math.PI))) * 60)); //fen

miao = Convert.ToInt16(Convert.ToInt16((((180 + A[i - 1] * 180 / Math.PI) - Math.Floor((180 + A[i - 1] * 180 / Math.PI))) * 60 - Math.Floor(((180 + A[i - 1] * 180 / Math.PI) - Math.Floor((180 + A[i - 1] * 180 / Math.PI))) * 60)) * 60));//秒?

textBox8.Text = Convert.ToString(du) + "度è" + Convert.ToString(fen) + "分?" + Convert.ToString(miao) + "秒?";

}

private void Form1_Load(object sender, EventArgs e)

{

相关文档
最新文档