答案 0 :(得分:3)
让我们按A,B,C
翻译所有点(-BX, -BY)
,将坐标原点设置为B
,新点为a, 0, c
,我会将距离重命名为{ {1}}和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)
行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
和px
的线性系统,在末尾移位坐标后面py
,BX
BY
P.S。在额外的情况下,PX = px + BX
PY = py + BY
系统无angle ABC=180
或da<>dc
的无限解决方案