C#,逐点计算位置和其他点的距离值
我有一个带有以下值的C#,逐点计算位置和其他点的距离值,c#,math,geometry,C#,Math,Geometry,我有一个带有以下值的struct: struct Point { public float x; public float y; } 我有三个结构变量,分别是point1,point2和point3 我需要计算点4的位置,我仅有的是点4与这些点之间的距离 是否可以仅通过其他三个具有距离的点的位置来计算点的位置?当然可能。这是简单的几何学 取点P1。距离d的某个地方是P4 在2D中,什么样的几何形状定义了与另一点在给定距离处的所有点?是的,一个圆圈。让我们画一个以P1为中心的圆,
struct
:
struct Point {
public float x;
public float y;
}
我有三个结构变量,分别是point1
,point2
和point3
我需要计算点4
的位置,我仅有的是点4
与这些点之间的距离
是否可以仅通过其他三个具有距离的点的位置来计算点的位置?当然可能。这是简单的几何学
P1
。距离d
的某个地方是P4
在2D中,什么样的几何形状定义了与另一点在给定距离处的所有点?是的,一个圆圈。让我们画一个以P1
为中心的圆,半径等于P1
和P4
之间的距离P2
并以适当的距离进行同样的操作。现在,会发生什么?那么有两种可能:
- 围绕
和P1
的圆圈不相交:问题没有解决方案,您已经完成了P2
- 围绕
和P1
的圆有一个(相切)或两个交点P2
- 新圆与先前绘制的圆在先前确定的交点之一相交;您找到了解决方案,所有三个圆的公共交点是
P4
- 新圆不与先前绘制的圆在先前确定的任何交点相交;问题没有解决办法
class Point
{
public double X { get; }
public double Y { get; }
...
}
class Circle
{
public Point Center { get; }
public double Radius { get; }
....
public static IEnumerable<Point> Interstect(Circle first, Circle second) { ... }
}
类点
{
公共双X{get;}
公共双Y{get;}
...
}
班级圈子
{
公共点中心{get;}
公共双半径{get;}
....
公共静态IEnumerable intersect(第一圈,第二圈){…}
}
当你编写了一些代码并偶然发现了无法计数的可能性时,你可以在这里发布另一个问题,请求帮助解决你可能遇到的更精确定义的问题。没有人会为你的(家庭)工作编写代码
我确实注意到,这个解决方案在数学上并不琐碎,但如果你不能从一开始就解决这个数学问题,那么你就没有必要尝试编写一个解决方案。当然这是可能的。这是简单的几何学
P1
。距离d
的某个地方是P4
在2D中,什么样的几何形状定义了与另一点在给定距离处的所有点?是的,一个圆圈。让我们画一个以P1
为中心的圆,半径等于P1
和P4
之间的距离P2
并以适当的距离进行同样的操作。现在,会发生什么?那么有两种可能:
- 围绕
和P1
的圆圈不相交:问题没有解决方案,您已经完成了P2
- 围绕
和P1
的圆有一个(相切)或两个交点P2
- 新圆与先前绘制的圆在先前确定的交点之一相交;您找到了解决方案,所有三个圆的公共交点是
P4
- 新圆不与先前绘制的圆在先前确定的任何交点相交;问题没有解决办法
class Point
{
public double X { get; }
public double Y { get; }
...
}
class Circle
{
public Point Center { get; }
public double Radius { get; }
....
public static IEnumerable<Point> Interstect(Circle first, Circle second) { ... }
}
类点
{
公共双X{get;}
公共双Y{get;}
...
}
班级圈子
{
公共点中心{get;}
公共双半径{get;}
....
公共静态IEnumerable intersect(第一圈,第二圈){…}
}
当你编写了一些代码并偶然发现了无法计数的可能性时,你可以在这里发布另一个问题,请求帮助解决你可能遇到的更精确定义的问题。没有人会为你的(家庭)工作编写代码
我注意到这个解在数学上并不是微不足道的,但是,如果你不能一开始就解决数学问题,那么你就没有必要尝试编写解决方案。这听起来像是家庭作业?这个答案可能会帮助你进行计算:看这里:这听起来像家庭作业?这个答案可能会帮你进行计算:看这里: