确定线段是否在两条线之间

2024-10-01 13:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要找出,如果n段和XY段在F点的同一侧。你知道吗

所有直线和线段都是平行的,且线段的长度相同。在图中,红色线段AB位于左侧(穿过点F的直线的左侧)。根据给定的标准,蓝色段CD位于右侧(外侧)。你知道吗

如何在GeoGebra或Python中确定这两种情况?你知道吗

当线段在F或E线上时,也应考虑特殊情况。我希望这足以描述问题。你知道吗

Parallel lines


Tags: 标准ab情况cd直线蓝色xy红色
1条回答
网友
1楼 · 发布于 2024-10-01 13:40:45

你可以这样做

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的delta大于X。现在,与u的标量积大于delta的点位于一条平行线上,该平行线上距离XY比点F更远

编辑:抱歉的错误修复

相关问题 更多 >