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

How to find position of point that is x unit distant from AB line segment and y unit distant from BC line segment?

我正在尝试计算点 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) 与直线 0c 的距离为 dc,并且与直线 0a 的距离为 da,则

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,最后将坐标移回 BXBY

PX = px + BX
PY = py + BY

P.S。在额外的情况下 angle ABC=180 系统没有 da<>dc 的解决方案或 da=dc

的无限数量的解决方案