math - 如何找到距离AB线段x单位和距离BC线段y单位的点的位置?

标签 math language-agnostic geometry

Representation image

我正在尝试计算点 P 的坐标,它距离 AB 线段 x 个单位,距离 BC 线段 y 个单位。

编辑: 我正在尝试为通用解决方案编写代码。 作为参数,我有三个点(坐标)A、B 和 C 以及距离 x 和 y 的两个值。

最佳答案

让我们翻译所有要点A,B,C通过 (-BX, -BY)将坐标原点设置为 B , 新点是 a, 0, c ,我会将您的距离重命名为 dcda .

新坐标

cy = CY - BY
cx = CX - BX
ay = AY - BY
ax = AX - BX

然后行 0c会有等式

(-cy * x + cx * y) / Sqrt(cx*cx +cy*cy) = 0

0a会有等式

(-ay * x + ax * y) / Sqrt(ax*ax +ay*ay) = 0

让我们lc = Sqrt(cx*cx +cy*cy)la = Sqrt(ax*ax +ay*ay) (BCBA 段的长度)

如点p=(px, py)位于 dc与线的距离 0c ,并在 da与线的距离 0a , 然后

Abs(-cy * px + cx * py) = dc * lc
Abs(-ay * px + ax * py) = da * la

如果你的点总是逆时针排列BC, BP, BA射线,你可以只使用这个符号组合并找到单一的解决方案:

-cy * px + cx * py = dc * lc
-ay * px + ax * py = - da * la

求解此线性方程组 pxpy , 最后将坐标移回 BX , BY

PX = px + BX
PY = py + BY

附言在额外的情况下 angle ABC=180系统没有解决da<>dcda=dc 的无限数量的解决方案

关于math - 如何找到距离AB线段x单位和距离BC线段y单位的点的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35317369/

相关文章:

algorithm - 什么是计算笛卡尔积的良好非递归算法?

将新点添加到多边形的算法

algorithm - 给定其他 2 个点、一个角度和一个距离的点

java - Java如何在内存中存储+-Infinite?

C# - 四舍五入整数除法

c# - 接口(interface)继承 - 好事?

sql - 更新字段几何多边形 PostGIS PostgreSQL

algorithm - 分治法计算根

javascript - 计算 RGB 颜色之间的褪色值的有效方法?

language-agnostic - 何时使用无符号值而不是有符号值?