确定段是否在两行之间

时间:2016-12-16 14:13:05

标签: python geometry geogebra

我需要找出,如果段n与点XY在点F的同一侧。

所有线条和线段都是平行的,并且线段的长度相同。在图示中,红色区段AB位于左侧(穿过点F的线)。在给定标准的情况下,蓝色段CD是正确的(出)侧。

如何在GeoGebra或Python中确定这两种情况?

当段在F或E线上时的特殊情况也应该考虑。我希望这足以解决问题。

Parallel lines

1 个答案:

答案 0 :(得分:2)

以下是如何做到这一点

u = (y[1]-y[0], x[0]-x[1])
delta = f[0] * u[0] + f[1] * u[1]
if delta < x[0]*u[0]+x[1]*u[1]:
    delta = -delta
    u = (-u[0], -u[1])
assert a[0] * u[0] + a[1] * u[1] < delta
assert b[0] * u[0] + b[1] * u[1] < delta
assert c[0] * u[0] + c[1] * u[1] > delta
assert d[0] * u[0] + d[1] * u[1] > delta

说明:向量u与XY正交。具有u的给定标量积的点形成与XY平行的线。对于F,此标量产品为delta。通过可选地改变u的符号,F可以比{X}更大delta。现在,带有u的标量乘积大于delta的点位于比XY更远的平行线上。 F点

编辑:抱歉修复错误