如何找到距离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
,我会将您的距离重命名为 dc
和 da
.
新坐标
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)
(BC
和 BA
段的长度)
如果点 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
求解此线性系统 px
和 py
,最后将坐标移回 BX
,BY
PX = px + BX
PY = py + BY
P.S。在额外的情况下 angle ABC=180
系统没有 da<>dc
的解决方案或 da=dc
的无限数量的解决方案
我正在尝试计算点 P 的坐标,它距离 AB 线段 x 个单位,距离 BC 线段 y 个单位。
编辑: 我正在尝试为通用解决方案编写代码。 作为参数,我有三个点(坐标)A、B 和 C 以及距离 x 和 y 的两个值。
让我们将所有点 A,B,C
平移 (-BX, -BY)
以将坐标原点设置为 B
,新点为 a, 0, c
,我会将您的距离重命名为 dc
和 da
.
新坐标
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)
(BC
和 BA
段的长度)
如果点 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
求解此线性系统 px
和 py
,最后将坐标移回 BX
,BY
PX = px + BX
PY = py + BY
P.S。在额外的情况下 angle ABC=180
系统没有 da<>dc
的解决方案或 da=dc