资源简介
一个简单的基于C#的测绘工程方面的应用程序,可以进行贝塞尔大地问题的正算。反算问题还没有解决。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 贝塞尔
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender EventArgs e)
{
double L1 A1 A2 B1 B2 S;
double a = 6378140.00000 E = Math.Sqrt(0.00669438499959) E2 = 0.00673950181947; //E2为e‘方
double u1 u2 m M K α β γ; //定义中间变量其中K=k方
double σ σ0 λ λ1 λ2; //中间变量
double K1 α1 β1 γ1 l L2; //K1表示k‘方,α1表示α‘方,β1表示β‘方
double D F M1;
double Box1 Box2 Box3 Box4 Box5 Box6 Box7 Box8 Box9; // 中间变量
Box1 = Convert.ToSingle(textBox1.Text);
Box2 = Convert.ToSingle(textBox2.Text);
Box3 = Convert.ToSingle(textBox3.Text);
Box4 = Convert.ToSingle(textBox4.Text);
Box5 = Convert.ToSingle(textBox5.Text);
Box6 = Convert.ToSingle(textBox6.Text);
Box7 = Convert.ToSingle(textBox7.Text);
Box8 = Convert.ToSingle(textBox8.Text);
Box9 = Convert.ToSingle(textBox9.Text);
L1 = Box1 + Box2 / 60 + Box3 / 3600;
B1 = Box4 +Box5/ 60 + Box6/ 3600;
A1 = Box7 + Box8 / 60 + Box9 / 3600;
S = Convert.ToSingle(textBox10.Text);
L1 = L1 * Math.PI / 180;
B1 = B1 * Math.PI / 180;
A1 = A1 * Math.PI / 180;
u1 = Math.Atan(Math.Sqrt(1 - Math.Pow(E 2)) * Math.Tan(B1));
m = Math.Asin(Math.Cos(u1) * Math.Sin(A1));
if (m < 0) m = m + 2*Math.PI;
M = Math.Atan(Math.Tan(u1) / Math.Cos(A1));
if (M < 0) M = M + Math.PI;
K = E2 * Math.Cos(m) * Math.Cos(m);
α = (Math.Sqrt(1 + Math.Pow(E 2)) / a) * (1 - (K / 4) + (7 * K * K / 64) - (15 * Math.Pow(K 3) / 256));
β = (K / 4) - (K * K / 8) + (37 * Math.Pow(K 3) / 256);
γ = K * K / 128 + Math.Pow(K 3) / 128;
σ0 = α * S;
do
{
σ = σ0;
σ0 = α * S + β * Math.Sin(σ0) * Math.Cos(2 * M + σ0) + γ * Math.Sin(2 * σ0) * Math.Cos(4 * M + 2 * σ0);
} while (Math.Abs(σ - σ0) > 3e-6);
A2 = Math.Atan(Math.Tan(m) / Math.Cos(M + σ));
if (A2 < 0) A2 = A2 + Math.PI;
if (A1 < Math.PI) A2 = A2 + Math.PI;
u2 = Math.Atan(-Math.Cos(A2) * Math.Tan(M + σ));
B2 = Math.Atan(Math.Sqrt(1 + E2) * Math.Tan(u2));
λ1 = Math.Atan(Math.Sin(u1) * Math.Tan(A1));
if
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14848 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\bin\Debug\贝塞尔.exe
文件 32256 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\bin\Debug\贝塞尔.pdb
文件 14328 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\bin\Debug\贝塞尔.vshost.exe
文件 490 2007-07-21 01:33 贝塞尔(基于C#)\贝塞尔\bin\Debug\贝塞尔.vshost.exe.manifest
文件 413 2009-10-26 16:06 贝塞尔(基于C#)\贝塞尔\ClassDiagram1.cd
文件 5026 2009-11-01 16:22 贝塞尔(基于C#)\贝塞尔\Form1.cs
文件 16524 2009-11-01 15:28 贝塞尔(基于C#)\贝塞尔\Form1.Designer.cs
文件 5814 2009-11-01 15:28 贝塞尔(基于C#)\贝塞尔\Form1.resx
文件 1588 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.csproj.FileListAbsolute.txt
文件 847 2009-11-01 15:28 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.csproj.GenerateResource.Cache
文件 14848 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.exe
文件 180 2009-11-01 15:28 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.Form1.resources
文件 32256 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.pdb
文件 180 2009-11-01 10:43 贝塞尔(基于C#)\贝塞尔\obj\Debug\贝塞尔.Properties.Resources.resources
文件 490 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Program.cs
文件 1362 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Properties\AssemblyInfo.cs
文件 2868 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Properties\Resources.Designer.cs
文件 5612 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Properties\Resources.resx
文件 1094 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Properties\Settings.Designer.cs
文件 249 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\Properties\Settings.settings
文件 3770 2009-10-26 17:20 贝塞尔(基于C#)\贝塞尔\贝塞尔.csproj
文件 917 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔.sln
..A..H. 14848 2009-11-06 09:38 贝塞尔(基于C#)\贝塞尔.suo
目录 0 2009-10-26 15:51 贝塞尔(基于C#)\贝塞尔\obj\Debug\TempPE
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔\bin\Debug
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔\obj\Debug
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔\bin
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔\obj
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔\Properties
目录 0 2009-11-07 12:47 贝塞尔(基于C#)\贝塞尔
............此处省略4个文件信息
- 上一篇:C# TCP/IP 聊天系统服务器端
- 下一篇:C#写的原始套接字数据包转发代码
评论
共有 条评论