已知一个点到两点坐标的距离,和两点坐标,怎么用js代码求这个点的坐标

js已知一个点到两点坐标的距离,和两点坐标,怎么用代码求当前点的坐标

图片描述

阅读 6.6k
4 个回答

clipboard.png

  1. 设A点坐标为(0,8), B点坐标为(11,12),C点坐标为(x,y)
  2. 设线段D1长度为10,线段D2长度为13
  3. 过A点做垂线ad,过C点做水平线dc,交点为D
  4. 过B点做垂线be,过C点做水平线ce,交点为E

方程1:

  1. ad = A.y - C.y = 8 - y
  2. dc = C.x - A.x = x - 0 = x
  3. ad² + dc² = D1² = (8 - y)² + x² = 10²

方程2:

  1. be = B.y - C.y = 12 - y
  2. ce = B.x - C.x = 11 - x
  3. be² + ce² = D2² = (12 - y)² + (11 - x)² = 13²

则有方程组

  1. (8 - y)² + x² = 10²
  2. (12 - y)² + (11 - x)² = 13²

解方程可得C点坐标为(6,0),函数的图像如下,其实也是求两圆交点,但是使用勾股定理应该更简单一点

clipboard.png

假设A,B的坐标分别是(a, b), (c, d) ,未知点坐标设为(x, y), 距离A,B距离分别是l1,l2

(x - a)² +(y - b)² = l1
(x - c)² + (y - d)² = l2
这两个方程可以得到
2(a - c)x + 2(b - d)y = l2 - l1 + a² + b² - c² - d²
y = ((l2 - l1 + a² + b² - c² - d²) - 2(a - c)x) / 2(b - d)
然后把这个y带回上面任意一个方程,这个有点复杂自己草稿简化下,结果就是求一元二次方程是否有解,求出x了,y也就出来了

先从数学角度来看,分别以 A 和 B 作半径为 D1 和 D2 的圆,其交点就是 C 点位置,剩下的公式求好,交给计算机就可以了。

哈哈,难道 js了,

有3种大的情况吧
可能是1个,也可能是2个,也可能是一个都没有。

具体解法,看看这个文档吧
求解两圆相交的交点坐标

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题