我需要找出,如果段n与点XY在点F的同一侧。
所有线条和线段都是平行的,并且线段的长度相同。在图示中,红色区段AB位于左侧(穿过点F的线)。在给定标准的情况下,蓝色段CD是正确的(出)侧。
如何在GeoGebra或Python中确定这两种情况?
当段在F或E线上时的特殊情况也应该考虑。我希望这足以解决问题。
答案 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点
编辑:抱歉修复错误