轻轻松松实现角度转换(弧度度分秒)
大家好啊,我是普普通通有点憨憨的小秦呀,已经更新了一段时间公众号了呀,自己写的程序分享了一些些,但是有小伙伴常常对这样一串代码感到不解。
from jzh import hdz2dfm as h2d,dfm2hdz as d2h
或者时常可以看到:
angle = '120°0′0″' # 或是angle = '120,0,0,'
angle_h = d2h(angle)
那么这样的操作究竟是要达到什么目的捏?
答案当然也很直白:
hdz2dfm——弧度制to(two)度分秒
dfm2hdz——度分秒to弧度制
我们在用程序进行计算时,cos、sin、tan等三角函数运算使用数值必须为弧度制,那么我们在进行大量角度计算时就需要先将度分秒的形式转为弧度制。
下面小秦就简单介绍介绍小秦的jzh(角转换)函数模块
1.使用模块介绍
import math
import re
math库是我们常用的科学计算库,这里我们会用到math库中的三角函数运算函数,同时可以将十进制的角度转为弧度制。
re库主要用于拆解我们输入的角度(字符串),这里我们就会用到正则表达式来确定选取我们想要的字符。
2. 度分秒和弧度制的相互转换
度分秒转弧度制代码如下:
def dfm2hdz(dfm):# 度分秒转换为弧度制dfm_list = re.split('[,°′″\'"]', dfm)sjz = abs(float(dfm_list[0])) + float(dfm_list[1]) / 60 + float(dfm_list[2]) / 3600if float(re.split('[,°′″\'"]', dfm)[0]) >= 0:hdz = math.radians(float(sjz))else:hdz = -math.radians(float(sjz))return hdz
首先我们需要将录入的角度按度分秒拆分为三部分,
dfm_list = re.split('[,°′″\'"]', dfm) 意为识别到[,°′″\'"]几种符号时分割文本
dfm = '30°30′30″' # 或 '30,0,0,'
print(re.split('[,°′″\'"]', dfm))
我们此处可获取列表[30,30,30],而后对于度分秒的操作就变成了对列表的操作。
math.radians() 函数能够将十进制的角度数值转为弧度制,所以如果我们想要把度分秒转为弧度制就需要先过渡为十进制。
我们都知道: 1° = 60′= 3600″
以30°30′30″为例,若想转为十进制算法为
30° + 30′/60 + 30″/3600
我们都知道: 1° = 60′= 3600″
以30°30′30″为例,若想转为十进制算法为
30° + 30′/60 + 30″/3600
而后我们只要用radians()就可获取弧度。
注: 我们还要注意角度的正负。
弧度制转度分秒:
def hdz2dfm(hdz):sjz = math.degrees(abs(hdz))secs = sjz * 3600sec_parts = math.modf(secs)sec_dec = sec_parts[0]sec_int = sec_parts[1]m = round(sec_int % 60 + sec_dec,2) # 秒小数点后两位fens = sec_int // 60f = int(fens % 60)d = int(fens // 60)if hdz >= 0:dfm = str(str(d) + '°' + str(f) + "′" + str(m) + '″')else:dfm = str(str(-d) + '°' + str(f) + "′" + str(m) + '″')return dfm
弧度制转度分秒为之前运算的逆运算,与之前相似的是我们依旧需要将十进制作为过渡。
math.degree()能够读取弧度制并转为十进制的角度,我们需要注意的是degree()中接收的弧度得为正数否则在计算时会发生错误,我们可以通过if-else判断正负在最后返回数值时让角度字符串带上相应的符号。
弧度制转度分秒为之前运算的逆运算,与之前相似的是我们依旧需要将十进制作为过渡。
math.degree()能够读取弧度制并转为十进制的角度,我们需要注意的是degree()中接收的弧度得为正数否则在计算时会发生错误,我们可以通过if-else判断正负在最后返回数值时让角度字符串带上相应的符号。
计算机计算角度直接使用弧度能够很好的避免手算时弧度转秒的常数ρ的使用能够大大节约计算过程,这也意味着我们常用的转换主要是弧度制和度分秒的转换。
这里小秦主要介绍弧度制和度分秒的转换,如果大家对其他形式的转换感兴趣可以查看小秦上一篇文章分享的源码。
也可以在公众号中输入关键词"jzh"获取。
可以搜索“学GIS的小秦”来关注我的公众号获取小秦分享的学习博客、软件以及资料哦。
欢迎关注,一起进步(。・∀・)ノ
轻轻松松实现角度转换(弧度度分秒)相关推荐
- 角度转换之度分秒的转换成度
度分秒的转化比例: 1°=60′ 1′=60″ 1°=3600″ 先设出变量du(本人命名略有那么一丝丝的不规范/doge),du是代表了我们转换前的度分秒. 然后利用_split将它们分列出 最后通 ...
- 经纬度换算数值_如何在Excel中将经纬度数值转换成度分秒
很多时候GPS上边显示地理坐标不是十进制的,而是度分秒形式,必须转换成十进制才能导入Arcgis等作图软件.而有很多网友也在咨询,excel中怎么将经纬度数值转换成度分秒,或者反转将度分秒如何转成数值 ...
- 坐标度数转换成度分秒
while True:try:number=float(input('输入度数(输入1关闭程序):'))numint=int(number)num_1=number-numintnum_2=num_1 ...
- lisp角度转换弪度_角度和弧度换算(角度和弧度怎么换算)
角度A1转换弧度A2: A2=A1*PI/180 弧度A2转换角度A1: A1=A2*180/PI 1弧度=180/π度1度=π/180弧度 1°= 0.01745 rad 1rad =57.30° ...
- 卡西欧350计算机度分秒转换,卡西欧FX-4500PA计算器怎样将如:12.58244度转换成度分秒啊...
1)37°20'+54.8°= 92°8' 2)70°42'45"+82°37'25"= 153°20'10" 3)120°-36°18'52"=83°41'8 ...
- 怎样用计算机计算度分秒的计算器,如何用计算器把角度换成度分秒??
匿名用户 1级 2010-02-06 回答 计算器中输入度分秒方法: 具体步骤如下(以输入30度24分32秒为例): 首先输入 输入30,按".,,,"键(该键左上角标记FACT, ...
- lisp如何将度分秒转换为弧度_地学中常用度、度分、度分秒,弧度、角度在MATLAB中的转换...
地学中常用度.度分.度分秒,弧度.角度在MATLAB中的转换 转化为角度: deg = DMS2DEG(35,20,10) deg = 35.3361 转化为弧度 rad=DMS2RAD(35,20, ...
- matlab中度数化成度分秒,地学中常用度、度分、度分秒,弧度、角度在MATLAB中的转换...
地学中常用度.度分.度分秒,弧度.角度在MATLAB中的转换 转化为角度: deg = DMS2DEG(35,20,10) deg = 35.3361 转化为弧度 rad=DMS2RAD(35,20, ...
- oracle 度分秒转小数点,角度的度分秒与小数点格式互相转换
一.角度的度分秒与小数点格式互相转换 EXCEL能将角度转换成度"°"分"′"秒"″"格式吗? 如将:120.999722222222°转换 ...
- 转换工具 | EXCEL中批量转换度分秒、度、弧度值
1 需求 科研工作中有时需要将GPS采集的经纬度转换为弧度.度为单位的数值,当然也可能互转.多数科学计算通常使用的是度或弧度为单位的数值. 例如:将 123°23′30″ 转换为 度 或 弧度的数值. ...
最新文章
- ASA防火墙透明模式ACL总结
- python入门到精通需要学多久-入门到精通python要多久
- 使用ffmpeg对视频进行TS切片
- 最短路径生成树计数+最短路径生成树
- 你疏漏的 JS 函数硬核知识?这里帮你总结了
- P1373-小a和uim之大逃离【dp】
- jdk10 换成jdk8_JDK 10的摘要Javadoc标签
- Alt Gr or Shift
- Python 之面向对象 继承
- 第 39 级台阶 蓝桥杯
- leetcode_day02
- Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
- druid连接池_springboot三步整合阿里数据库连接池druid
- 第七届蓝桥杯c语言a组答案,第七届蓝桥杯 C语言A组试题.pdf
- 通达信接口程序怎么设计出K线图?
- 备考电商双十一智齿客服主动营销功能大升级
- AI仿生:人类进化新可能
- 读美妆论文AN AUTOMATIC FRAMEWORK FOR EXAMPLE-BASED VIRTUAL MAKEUP
- L - Lifeguards 思维
- SoC关键技术-HBM学习札记
热门文章
- Air720模块Linux USB驱动以及PPP拨号说明
- python的sorted用法_python的sorted用法详解
- c语言编程身高体重测量,身高体重测量系统设计.doc
- 惠普台式计算机系列,惠普星系列590-051 台式机 拆解
- 解决Configure TrackPoint重启后不能保存的问题
- 环路稳定性原理与DCDC Buck环路稳定性
- BERT源码embedding_lookup解析
- 百词斩不复习_不背单词和百词斩哪个好?
- php中生成图片代码,用PHP代码在网页上生成图片
- m1芯片 服务器,M1芯片相当于什么水平 苹果M1芯片相当于英特尔什么芯片