三边定位 c#

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

项目中用到三边定位,c#中没有MATLAB solve函数来解方程,只好人工去解方程了。


    class Program
{
static void Main(string[] args)
{
Point p1 = new Point() { X = 0, Y = 2, Distance = Math.Sqrt(5) };
Point p2 = new Point() { X = 2, Y = 2, Distance = Math.Sqrt(5) };
Point p3 = new Point() { X = 1, Y = 0, Distance = Math.Sqrt(0) };
var p= GetPiontByThree(p1, p2, p3);
Console.WriteLine("Point x:{0}",p.X);
Console.WriteLine("Point y:{0}", p.Y);
Console.ReadKey();
}

/// <summary>
/// 三点绝对定位
/// </summary>
private static Point GetPiontByThree(Point p1, Point p2, Point p3)
{
/* Math.Pow(y1-Y)+Math.Pow(X-x1)=Math.Pow(D1)
* Math.Pow(y2-Y)+Math.Pow(X-x2)=Math.Pow(D2)
* Math.Pow(y3-Y)+Math.Pow(X-x3)=Math.Pow(D3)
* 1-3.2-3解得:
* 2 * (p1.X - p3.X)x + 2 * (p1.Y - p3.Y)y = Math.Pow(p1.X, 2) - Math.Pow(p3.X, 2) + Math.Pow(p1.Y, 2) - Math.Pow(p3.Y, 2) + Math.Pow(p3.Distance, 2) - Math.Pow(p1.Distance, 2);
* 2 * (p2.X - p3.X)x + 2 * (p2.Y - p3.Y)y = Math.Pow(p2.X, 2) - Math.Pow(p3.X, 2) + Math.Pow(p2.Y, 2) - Math.Pow(p3.Y, 2) + Math.Pow(p3.Distance, 2) - Math.Pow(p2.Distance, 2);
* 简化:
* 2Ax+2By=C
* 2Dx+2Ey=F
* 简化:
* x=(BF-EC)/(2BD-2AE)
* y=(AF-DC)/(2AE-2BD)
*/
var A = p1.X - p3.X;
var B = p1.Y - p3.Y;
var C = Math.Pow(p1.X, 2) - Math.Pow(p3.X, 2) + Math.Pow(p1.Y, 2) - Math.Pow(p3.Y, 2) + Math.Pow(p3.Distance, 2) - Math.Pow(p1.Distance, 2);
var D = p2.X - p3.X;
var E = p2.Y - p3.Y;
var F = Math.Pow(p2.X, 2) - Math.Pow(p3.X, 2) + Math.Pow(p2.Y, 2) - Math.Pow(p3.Y, 2) + Math.Pow(p3.Distance, 2) - Math.Pow(p2.Distance, 2);

var x = (B * F - E * C) / (2 * B * D - 2 * A * E);
var y = (A * F - D * C) / (2 * A * E - 2 * B * D);

Point P = new Point() { X = x, Y = y, Distance = 0 };
return P;
}
}

public class Point
{
public double X { get; set; }
public double Y { get; set; }
//表示指定点,据此点的距离
public double Distance { get; set; }
}

三边定位 c#,码迷,mamicode.com

时间: 2024-12-25 06:39:14

三边定位 c#的相关文章

[三边定位] C# 演示程序

计划用CC2530做定位,网上找了一些求圆交点的程序, 修改成3个圆求交点的质心,感觉算法还行. 粗略写了一下程序,结果还行. 现在只能手动输入3个圆的信息. 后面需要再优化. 全部未优化的程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.T

室内定位(最全的总结:种类,方法,特点)

时间过得真快,从研究生开始到现在三年过去了. 也就是我做室内定位已经三年多了,不成器,没做出什么成果. 不过踩了不少坑,在这里做个总结,如果有人翻到这篇博客,就当科普也好,如果恰好你也是这个方向,能避免你踩些坑,有些方向的作用那也就值了. ps.可能持续更新... 1室内定位的主要种类 这里要讲的室内定位,主要针对我自己做过或者理解的内容,主要是基于手机平台的行人的室内定位.至于机器人的SLAM通过的激光雷达等部分暂时不敢妄议. 目前来看,从定位信号来源大致可以分为: 1.基于无线信号发射设备的

关于APIT定位算法的讨论

关于APIT定位算法的讨论 [摘要]   无线传感器网络节点定位机制的研究中,基于距离无关的定位技术得到快速发展,其中基于重叠区域的APIT定位技术在实际环境中的定位精度高,被广泛研究和应用. [关键词] 无线传感器网络:定位算法:APIT: [正文] 在传感网络中的许多应用中,用户一般都会关心一个重要问题,即特定时间发生的具体位置或区域.例如,目标跟踪,入侵检测,环境监控等,若不知道传感器自身的位置,感知的数据是没有意义的.因此,传感器网络及诶单必须知道自身所在的位置,才能够有效地说明被检测物

好好说一说室内定位技术

室内定位技术进过了几十年的发展,从未像今天这样引起大家的关注,这无疑得益于VR技术在这几年的蓬勃发展,52VR的编辑们今天就梳理下已有的定位技术和手段,有哪些点值得我们参考和注意呢? 那么传统的室内定位技术有哪些呢? 室内无线定位技术可以这样分成三类: 近邻法 三边(角)测量法 模式匹配法. 近邻法: 最简单的方式,直接选定那个信号强度最大的AP的位置.纠正一个很容易被误导的地方,目前大多数手机中的定位方式为(GPS/AGPS.基站定 位.WiFi定位),这里的WiFi定位并不是位置指纹法,而是

无线定位技术

实现室内地图定位导航,需要解决哪些技术难题? 2015-06-18 15:00:00 来源: 知乎每日精选 跟贴 0 条 手机看新闻 Wi-Fi指纹定位是什么原理? 室内定位中的位置指纹法,简单来说,就是事先把各个位置上的信号特征(各Wi-Fi的信号强度)测量一遍,存入指纹数据库.定位的时候,将当前的信号特征与指纹库中的进行匹配,从而确定位置.下图是我本科毕设时画的示意图(AP就是WiFi,RP是离线采集选取的参考点): 离线阶段:记录下每个RP处测到的信号强度,每组数据(指纹)包含4个信号强度

STM32W108无线传感器网络节点定位技术

使用STM32W108无线节点完成基于接收信号强度指示(RSSI:Received SignalStrength Indication)的N次三边质心加权定位,对移动中的节点实时进行定位,并将定位结果发送到汇集中心.图15.1为定位实验的实际场景,所有实验在室内完成,共使用9个节点,1个移动节点,8个信标节点. 图15.1. 定位实际场景 基于第10章介绍的SimpleMac协议栈,对程序进行删减更改,下面给出更改部分代码: 文件solar-system.c相关内容: 函数processRxPa

微信实现定位城市并获取城市编码

最近在做一个项目是将用户的当前所在市县定位出来并展示在手机端页面,同时还要获取到该市县的城市编码从而进行数据过滤,这里重点讲定位城市及获取城市编码 前端页面代码: 首先引用腾讯地图的一个js <script type="text/javascript" src="https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js" ></script> 同时在页面加载

div与 css--绝对定位和相对定位

<10-页面美化专题-div和css基础.avi> Border-topPadding-topMargin-topFloat Position #clear{Both:clear;}//浮动 float为了不影响后面的 语句#son2{position:relative; //没有脱离文档流left:60%;} position :absolute;left:0px;绝对定位 就脱离了文档 子的绝对定位:要看爸爸是否有相对定位:如果有就相对爸爸的边框,如果没有就相对浏览器的定位了:

copyright底部栏定位css样式(min-height)

关于底部版权栏定位的一点点小技巧,让其一直处于页面的最底部. html代码: css代码: reset代码,清除浏览器留下的margin和padding: 设置html,body的高度100%: 通过top的min-height和底部栏的height和margin-top来完成布局: