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

Math 如何找到距离AB线段x单位和距离BC线段y单位的点的位置?,math,language-agnostic,geometry,Math,Language Agnostic,Geometry,我试图计算点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

我试图计算点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
(-ay * x + ax * y) / Sqrt(ax*ax +ay*ay) = 0
0a
将具有公式

(-cy * x + cx * y) / Sqrt(cx*cx +cy*cy) = 0
(-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
通过

PX = px + BX
PY = py + BY

另一方面,在额外情况下,
angle ABC=180
系统对于
dadc
没有解决方案,或者对于
da=dc

有无限多的解决方案,这在很大程度上取决于您需要处理的拐角情况,以及您的“到线段的距离”是否与“到包含线段的直线的距离”相同。注:对于angle ABC=180,如果两个距离不相等,就没有解决方案。如果两个距离相等,则存在无穷多个解(两条平行于ABC的直线上的任意一点与ABC的距离相同)。