资源简介
三角质心算法:
用于三点定位计算坐标,已测试相对三角算法来说提高了精准对,
可以增加锚节点数量,分别代入算法,获得多组坐标,再平均计算,则可进一步提高精确度。程序已经应用现有项目,无bug
用于三点定位计算坐标,已测试相对三角算法来说提高了精准对,
可以增加锚节点数量,分别代入算法,获得多组坐标,再平均计算,则可进一步提高精确度。程序已经应用现有项目,无bug
代码片段和文件信息
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Point p1;
Point p2;
Point p3;
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;
}
private void Form1_Shown(object sender EventArgs e)
{
}
private void button1_Click(object sender EventArgs e)
{
p1 = new Point() { X = 10 Y = 0 Distance = Convert.ToDouble(tbx1.Text) };
p2 = new Point() { X = 0 Y = 10 Distance = Convert.ToDouble(tbx2.Text) };
p3 = new Point() { X = 10 Y = 10 Distance = Convert.ToDouble(tbx3.Text) };
var p = GetPiontByThree(p1 p2 p3);
tbx7.Text = p.X.ToString();
tbx8.Text = p.Y.ToString();
//Console.WriteLine(“Point x:{0}“ p.X);
//Console.WriteLine(“Point y:{0}“ p.Y);
}
}//end Form1
public class Point
{
public double X { get; set; }
public double Y { get; set; }
//表示指定点,据此点的距离
public double Distance { get; set; }
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 954 2018-03-20 15:40 Trigonometric\.git\config
文件 73 2018-03-20 12:44 Trigonometric\.git\desc
文件 115 2018-03-20 15:40 Trigonometric\.git\FETCH_HEAD
文件 23 2018-03-20 12:44 Trigonometric\.git\HEAD
文件 177 2018-03-20 12:44 Trigonometric\.git\hooks\README.sample
文件 1632 2018-03-20 15:40 Trigonometric\.git\index
文件 113 2018-03-20 12:44 Trigonometric\.git\info\exclude
文件 587 2018-03-20 15:40 Trigonometric\.git\logs\HEAD
文件 587 2018-03-20 15:40 Trigonometric\.git\logs\refs\heads\master
文件 140 2018-03-20 15:40 Trigonometric\.git\logs\refs\remotes\origin\master
文件 167 2018-07-01 16:27 Trigonometric\.git\ms-persist.xm
文件 145 2018-03-20 12:44 Trigonometric\.git\ob
文件 89 2018-03-20 12:44 Trigonometric\.git\ob
文件 172 2018-03-20 12:47 Trigonometric\.git\ob
文件 1665 2018-03-20 12:44 Trigonometric\.git\ob
文件 1863 2018-03-20 12:44 Trigonometric\.git\ob
文件 751 2018-03-20 12:44 Trigonometric\.git\ob
文件 1283 2018-03-20 12:44 Trigonometric\.git\ob
文件 309 2018-03-20 12:44 Trigonometric\.git\ob
文件 186 2018-03-20 12:44 Trigonometric\.git\ob
文件 172 2018-03-20 15:40 Trigonometric\.git\ob
文件 144 2018-03-20 15:40 Trigonometric\.git\ob
文件 171 2018-03-20 12:44 Trigonometric\.git\ob
文件 728 2018-03-20 12:44 Trigonometric\.git\ob
文件 75 2018-03-20 12:44 Trigonometric\.git\ob
文件 405 2018-03-20 12:44 Trigonometric\.git\ob
文件 153 2018-03-20 12:44 Trigonometric\.git\ob
文件 1147 2018-03-20 12:44 Trigonometric\.git\ob
文件 956 2018-03-20 12:44 Trigonometric\.git\ob
文件 309 2018-03-20 15:40 Trigonometric\.git\ob
............此处省略109个文件信息
- 上一篇:基于VoiP的网络电话开题报告
- 下一篇:PMP第六版工具技术合集最终版.pdf
评论
共有 条评论