【发布时间】:2011-07-19 05:27:03
【问题描述】:
如果我有三个点 A、B、C,并且我知道它们之间的距离,并且 A 在二维坐标 {0,0} 处,B 在 {ab,0} 处,那么找到C点坐标?
【问题讨论】:
标签: math coordinates distance
如果我有三个点 A、B、C,并且我知道它们之间的距离,并且 A 在二维坐标 {0,0} 处,B 在 {ab,0} 处,那么找到C点坐标?
【问题讨论】:
标签: math coordinates distance
您可以使用距离公式(基本上是勾股定理)来求坐标平面上任意两点之间的距离。
【讨论】:
点{cx, cy} 必须解决两个方程:
cx^2+cy^2==ac^2 && (cx-ab)^2+cy^2==bc^2
=> cx^2-(cx-ab)^2==ac^2-bc^2
=> 2*cx*ab==ac^2-bc^2+ab^2
=> cx = (ac^2-bc^2+ab^2)/(2*ab)
=> cy = +/- sqrt(ac^2-cx^2) iff ac^2-cx^2 > 0
=> cy = 0 iff ac^2-cx^2 = 0
=> no solution else
有两个点都具有所需的距离。但基于ac^2-cx^2,也可能只有一种解决方案或根本没有解决方案。
【讨论】:
如果你不进一步限制距离,你的问题相当于“如何找到2个圆的交点”:
http://mathworld.wolfram.com/Circle-CircleIntersection.html
因此,正如霍华德所指出的,将有 0、1 或 2 个交点满足您放置的条件。
【讨论】: