- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大地编程实习
XYZ-BLH
XYZ-BLH
程序界面
(其中ε为用户给定的最后两次迭代值之差限差,单位为秒;N为用户给定的最大迭代次数,以下类同)
主要代码
private void button1_Click(object sender, EventArgs e)
{
//定义变量
int N = int.Parse(tb_N.Text);
double X = double.Parse(tb_X.Text);
double Y = double.Parse(tb_Y.Text);
double Z = double.Parse(tb_Z.Text);
//double a1 = double.Parse(tb_a.Text);
//double a2 = double.Parse(tb_α.Text);
double u = double.Parse(tb_ε.Text);
double b = a - a * α;
double e12 = (a * a - b * b) / (a * a);
double e22 = (a * a - b * b) / (b * b);
double c = a * a / b;
//double W = Math.Sqrt(1 - e1 * e1);
//double N1 = a/ W;
double p = c * e12 / Math.Sqrt(X * X + Y * Y);
double k = 1 + e22;
double[] t = new double[N+1];
int i=0;
t[0] = Z / Math.Sqrt(X * X + Y * Y);
//t[1] = t[0] + t[0] * p / Math.Sqrt(k + t[0] * t[0]);
//迭代代码
do
{
i = i + 1;
t[i] = t[0] + p * t[i-1] / Math.Sqrt(k + t[i-1] * t[i-1]);
if (i N-1 )
{
MessageBox.Show(迭代结束,没有符合要求的值!);
break;
}
}
while (Math.Abs(Math.Atan(t[i]) - Math.Atan(t[i-1])) u * Math.PI / 648000.0);
double B=Math.Atan(t[i]);
double W = Math.Sqrt(1 - e12*Math.Sin(B)*Math.Sin(B));
double N1 = a / W;
double L=Math.Atan(Y/X);
if (X 0)
{
if (Y 0)
L = L + Math.PI;
else
L = L - Math.PI;
}
double H1 = Z / Math.Sin(B) - N1 * (1 - e12);
RadianToDfm dfm=new RadianToDfm();
MessageBox.Show(B= + dfm.du(B) + ° + dfm.fen(B) + ′ + dfm.miao(B) + ″ + \n + L= +
dfm.du
文档评论(0)