询问一个二度空间定位法的算法实现

已知点X到A、B、C三点的距离,并知A、B、C三点的坐标,怎么用程序算出X的坐标?

注意!是用程序来实现,不是通过数学方程式,希望能提供一个思路~

请各位不吝赐教!

无非就是求三个圆的交点坐标,三个圆不一定有交点,
ta*ta=(xa-x)*(xa-x)+(ya-y)*(ya-y)
tb*tb=(xb-x)*(xb-x)+(yb-y)*(yb-y)
tc*tc=(xc-x)*(xc-x)+(yc-y)*(yc-y)
三个两两相减变为二元一次方程组解出x,y就可以了,记得代入原方程检查一下,
其实前两个方程就可以解出x,y,其解如满足第三个方程则为三圆的交点

先列个方程,然后能程序来解方程

int min =..
int max = ..
//这两个你最好能定义一下

for(int i=min; i<max; i++){

for(int j = min; j < max; j++){
//计算 (i,j )到 a, b, c三点的距离是否是相应的距离,是就直接跳出,可能要用到 break label,或者做一个标志,以便跳出来
}
}

这个算法可能得不到结果,因为 int型可能满足不了条件, 只能用一个误差来调节
同时,min 和max的设置会直接导致运算的时间长短和运算的结果

问一下,什么叫二度空间?是三维的还是二维的?
二维的话,不一定有解啊

设ta为 x到a的距离, tb为x到b地距离, tc为x到c的距离
xa为a的横坐标
ya为a的纵坐标
基于类似

比较下 xa -ta, xb-tb, xc-tc的 大小,最小的为 minX
xa +ta, xb+tb, xc+tc 中最大的为 maxX
同样可以得到 minY, maxY,
这样你就可以缩小范围了,同时,
你要选好步长和误差,

:cry: :cry: :oops: :oops: 8) 8) 8) 8) 8) 8) 8)

算出到a固定距离所有的点[(x,y),(x1,y1)...]
算出到b固定距离所有的点。。。
。。。c。。。

这个三个数组的交集就是那个点

先用数学列出算法,然后再去实现了!