python 判断点在线段上
时间: 2024-06-13 21:06:42 浏览: 222
以下是Python中判断点是否在线段上的代码实现:
```python
def is_point_on_segment(point, segment):
"""
判断点是否在线段上
:param point: 点坐标,格式为 (x, y)
:param segment: 线段坐标,格式为 [(x1, y1), (x2, y2)]
:return: True 或 False
"""
# 获取点和线段的坐标
px, py = point
(x1, y1), (x2, y2) = segment
# 判断点是否在线段的矩形内
if min(x1, x2) <= px <= max(x1, x2) and min(y1, y2) <= py <= max(y1, y2):
# 计算叉积
cross = (px - x1) * (y2 - y1) - (py - y1) * (x2 - x1)
if abs(cross) < 1e-6:
return True
return False
```
其中,point表示点的坐标,segment表示线段的坐标,格式为[(x1, y1), (x2, y2)]。函数返回True表示点在线段上,返回False表示点不在线段上。
阅读全文