定位原理很简单,故不赘述,直接上源码,内附注释。(如果对您的学习有所帮助,还请帮忙点个赞,谢谢了)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed May 16 10:50:29 2018@author: dag
"""
import sympy
import numpy as np
import math
from matplotlib.pyplot import plot
from matplotlib.pyplot import show
import matplotlib.pyplot as plt
import matplotlib
#解决无法显示中文问题,fname是加载字体路径,根据自身pc实际确定,具体请百度
zhfont1 = matplotlib.font_manager.FontProperties(fname='/System/Library/Fonts/Hiragino Sans GB W3.ttc')#随机产生3个参考节点坐标
maxy = 1000
maxx = 1000
cx = maxx*np.random.rand(3)
cy = maxy*np.random.rand(3)
dot1 = plot(cx,cy,'k^')#生成盲节点,以及其与参考节点欧式距离
mtx = maxx*np.random.rand()
mty = maxy*np.random.rand()
plt.hold('on')
dot2 = plot(mtx,mty,'go')
da = math.sqrt(np.square(mtx-cx[0])+np.square(mty-cy[0]))
db = math.sqrt(np.square(mtx-cx[1])+np.square(mty-cy[1]))
dc = math.sqrt(np.square(mtx-cx[2])+np.square(mty-cy[2]))#计算定位坐标
def triposition(xa,ya,da,xb,yb,db,xc,yc,dc): x,y = sympy.symbols('x y')f1 = 2*x*(xa-xc)+np.square(xc)-np.square(xa)+2*y*(ya-yc)+np.square(yc)-np.square(ya)-(np.square(dc)-np.square(da))f2 = 2*x*(xb-xc)+np.square(xc)-np.square(xb)+2*y*(yb-yc)+np.square(yc)-np.square(yb)-(np.square(dc)-np.square(db))result = sympy.solve([f1,f2],[x,y])locx,locy = result[x],result[y]return [locx,locy]#解算得到定位节点坐标
[locx,locy] = triposition(cx[0],cy[0],da,cx[1],cy[1],db,cx[2],cy[2],dc)
plt.hold('on')
dot3 = plot(locx,locy,'r*')#显示脚注
x = [[locx,cx[0]],[locx,cx[1]],[locx,cx[2]]]
y = [[locy,cy[0]],[locy,cy[1]],[locy,cy[2]]]
for i in range(len(x)):plt.plot(x[i],y[i],linestyle = '--',color ='g' )
plt.title('三边测量法的定位',fontproperties=zhfont1)
plt.legend(['参考节点','盲节点','定位节点'], loc='lower right',prop=zhfont1)
show()
derror = math.sqrt(np.square(locx-mtx) + np.square(locy-mty))
print(derror) 

输出效果图:

python实现简单的三边测量定位相关推荐

  1. Python 实现简单的爬虫

    Python 是一种跨平台的计算机程序设计语言,面向对象动态类型语言,Python是纯粹的自由软件,源代码和解释器cpython遵循 GPL(GNU General Public License)协议 ...

  2. python服务端语言_使用Python实现简单的服务器功能

    socket接口是实际上是操作系统提供的系统调用.socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apach ...

  3. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  4. python中xpath定位_xpath最新:关于python中的xpath解析定位_爱安网 LoveAn.com

    关于"xpath"的最新内容 聚合阅读 这篇文章主要介绍了关于python中的xpath解析定位,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要 ...

  5. Python的简单介绍

    1.Python起源与定义 Python 是由荷兰人吉多·罗萨姆于 1989 年发布的.Python 的第一个公开发行版发行于 1991 年.Python 的官方定义:Python 是一种解释型的.面 ...

  6. python的简单爬取代码之小白教程(微博热门标题)

    python的简单爬取代码之小白教程(微博热门标题) 一.请求网站响应获取网页源代码 1.观察微博搜索热搜榜 2.准备工作 3.上代码 二.利用正则定位到每个热搜 1.查看源码 2.使用正则直接定位 ...

  7. 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...

  8. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  9. 基于python与matlab的TOA定位算法性能仿真

    基于python与matlab的TOA定位算法性能仿真 仿真要求 仿真方案的设计 matlab仿真代码 python仿真代码 仿真结果 仿真要求 要求一:编写两个函数TOA_LLOP和TOA_CHAN ...

  10. python实现简单的情感分析

    python实现简单的情感分析 1 数据导入及预处理 1.1 数据导入 # 数据导入 import pandas as pd data = pd.read_csv('../data/京东评论数据.cs ...

最新文章

  1. activexobject java_JS进阶篇--IE浏览器的ActiveXObject对象以及FileSystemobject的应用扩展...
  2. 新手学习单片机最常见的六大误区,你进坑了吗?
  3. Java中的多线程你只要看这一篇就够了
  4. mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)
  5. 关于Increased rates of convergence through learning rate adaptation一文的理解
  6. 应用上下文webApplicationContext
  7. fun(n) Java_java程序员的kotlin课(N+2):suspending函数执行编排
  8. Bootstrap中过渡效果(Transition)模态框插件的使用案例
  9. linux 之间 copy 传输文件方法:ftp、samba、sftp、scp、sz/rz
  10. CVPR2021论文集锦 | CVPR2021最新论文 | CVPR2021审稿结果 | CVPR2021录取结果
  11. 原python最简单的图形编程_Python(简单图形和文件处理)编程
  12. 数据库mysql:MySQL软件安装
  13. [你必须知道的.NET] 调试技巧 - DebuggerDisplayAttribute
  14. Mybatis学习(2)—— 对象关系映射
  15. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  16. Android -Recovery
  17. github项目下载单个文件夹的办法
  18. matlab--积分计算
  19. 规模决定利润 网吧规模扩充升级参考方案(转)
  20. C语言文件操作函数总结——超详细

热门文章

  1. 2020年ROS机器人操作系统用户官方调查
  2. UnityHub破解Unity破解
  3. 不定积分24个基本公式整理
  4. dirent struct_struct dirent中d_name长度问题
  5. 计算机机房实训计划,计算机专业实习计划安排.docx
  6. java中的math pow_Java ME中的Math.pow()方法使用详解
  7. 【2021-02】实时获取百度搜索词接口
  8. SYBASE 常用 sp_configure
  9. 使用selenium登录QQ空间
  10. 批处理系统、分时操作系统、实时操作系统