This action will force synchronization from shao1chuan/pythonbook, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
# -*- coding: utf-8 -*-import sympyimport numpy as npimport mathfrom matplotlib.pyplot import plotfrom matplotlib.pyplot import showimport matplotlib.pyplot as pltimport matplotlib# 解决无法显示中文问题,fname是加载字体路径,根据自身pc实际确定,具体请百度# zhfont1 = matplotlib.font_manager.FontProperties(fname='/System/Library/Fonts/Hiragino Sans GB W3.ttc')# 随机产生3个参考节点坐标maxy = 1000maxx = 1000cx = 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('Three point locate')plt.legend(['Ref', '盲节点', 'Locate'], loc='lower right')plt.show()derror = math.sqrt(np.square(locx - mtx) + np.square(locy - mty))print(derror)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。