matlab高斯正反算程序6,基于matlab的高斯投影正反算与相邻带坐标换算程序设计...

第 卷 第 期

中 国 水 运

基于 的高斯投影正反算与相邻带坐标换

算程 序设计

徐 翰 ,周 强 波

(核 工 业 二 三 研 究所 ,湖 南 长 沙 )

摘 要 :地 图投影方法众多 ,常用 的地 图投影主要是高斯一克 吕格投影和 投影 , 投影属于高斯投影族 ,

故对于坐标投影 的坐标正反算 的学 习研究以高斯投影正反算为主 ,文中主 要利用 的强大软件编程功能 ,对

常 用的高斯投影正反算与相邻带坐标换算进行程序化设计 。

关键 词:高斯投影 ;正算 ;反算 ;

中 图 分 类号 :

文 献 标识 码 :

文 章 编 号 : ()

一 、 引言 要将椭球 体上元素投影到平面上 ,包括坐标 、方向和长 度三类问题 ,因此在整个地 图投影过程 中所考 虑的不止一个 问题 ,而是多个问题 ,从研究投影这个过程来说 ,如果椭球 面与 平面对 应点之 间的坐标关系 已经确定 的话 ,相 应地 ,方 向和 长度的投影关系也就确定 了。由此可见 ,推求投影关系 式,是整个投影过程 的主要矛盾 。 二 、投 影 椭 球 参 数 我 国建立 年北京坐标系应用的是克拉索夫斯基椭 球 ;建立 年国家大地坐标系应用的是 年 国际椭球 ; 而全球定位 系统 ()应用的是 一系椭球参数…。

表 几种 常见的椭球体 参数值 (单位 :)

应 ,并反映地 面点所处投 影带 的带号 ,常在移轴 后的 坐标 值之前

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
话不多说,直接上代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace _高斯投影 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } double DD2RAD(double n) { double DD; double MM; double SS; DD = Math.Floor(n); MM = Math.Floor((n - DD) * 100); SS = ((n - DD) * 100 - MM) * 100; n = (DD + MM / 60.0 + SS / 3600.0) * Math.PI / 180.0; return n; } private void Form2_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { double B, L; B = double.Parse(textBox1.Text); B = DD2RAD(B); L = double.Parse(textBox2.Text); L = DD2RAD(L); double L0 = double.Parse(textBox3.Text); L0 = DD2RAD(L0); double a = double.Parse(textBoxa.Text); double e2 = double.Parse(textBoxe2.Text); double A = 1.0 + 3.0 * e2 / 4 + 45.0 * e2 * e2 / 64 + 175.0 * Math.Pow(e2, 3) / 256 + 11025.0 * Math.Pow(e2, 4) / 16384 + 43659.0 * Math.Pow(e2, 5) / 65536; double B0 = 3.0 * e2 / 4 + 15.0 * e2 * e2 / 16 + 525.0 * Math.Pow(e2, 3) / 512 + 2205.0 * Math.Pow(e2, 4) / 2048 + 72765.0 * Math.Pow(e2, 5) / 65536; double C = 15.0 * e2 * e2 / 64 + 105.0 * Math.Pow(e2, 3) / 256 + 2205.0 * Math.Pow(e2, 4) / 4096 + 10395.0 * Math.Pow(e2, 5) / 16384; double D = 35.0 * Math.Pow(e2, 3) / 512 + 315.0 * Math.Pow(e2, 4) / 2048 + 31185.0 * Math.Pow(e2, 5) / 131072; double α = A * a * (1 - e2);//α double β = -B0 * a * (1 - e2) / 2.0;//β double γ = C * a * (1 - e2) / 4.0; double σ = -D * a * (1 - e2) / 6.0; double X
以下是一个绘制海绵宝宝的Python代码: ```python import turtle # 设置画笔的初始位置和角度 t = turtle.Turtle() t.speed(0) t.penup() t.goto(0, -150) t.pendown() # 绘制身体 t.begin_fill() t.color("yellow") t.circle(150) t.end_fill() # 绘制头部 t.penup() t.goto(0, 50) t.pendown() t.begin_fill() t.color("yellow") t.circle(100) t.end_fill() # 绘制眼睛 t.penup() t.goto(-50, 100) t.pendown() t.begin_fill() t.color("white") t.circle(30) t.end_fill() t.penup() t.goto(-50, 115) t.pendown() t.begin_fill() t.color("blue") t.circle(15) t.end_fill() t.penup() t.goto(50, 100) t.pendown() t.begin_fill() t.color("white") t.circle(30) t.end_fill() t.penup() t.goto(50, 115) t.pendown() t.begin_fill() t.color("blue") t.circle(15) t.end_fill() # 绘制鼻子 t.penup() t.goto(0, 50) t.pendown() t.begin_fill() t.color("red") t.circle(20) t.end_fill() # 绘制嘴巴和牙齿 t.penup() t.goto(-50, 20) t.pendown() t.pensize(15) t.right(45) t.forward(50) t.right(90) t.forward(50) t.right(90) t.forward(50) t.right(90) t.forward(50) t.right(135) t.forward(70) t.penup() t.goto(-30, -30) t.pendown() t.color("white") t.begin_fill() t.circle(20) t.end_fill() t.penup() t.goto(30, -30) t.pendown() t.color("white") t.begin_fill() t.circle(20) t.end_fill() # 绘制领 t.penup() t.goto(0, -80) t.pendown() t.begin_fill() t.color("red") t.circle(40, steps=3) t.end_fill() turtle.done() ``` 执行代码,就可以看到绘制出来的海绵宝宝: ![spongebob](https://cdn.luogu.com.cn/upload/image_hosting/ft2j8pt0.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值