python代码判断点在向量左侧还是右侧
时间: 2024-02-05 17:10:23 浏览: 172
可以利用向量叉积的符号来判断点在向量左侧还是右侧。具体来说,假设有向量 $\overrightarrow{AB}$ 和点 $P$,则可以计算向量 $\overrightarrow{AP}$ 和向量 $\overrightarrow{AB}$ 的叉积 $cross = \overrightarrow{AP} \times \overrightarrow{AB}$。若 $cross > 0$,则点 $P$ 在向量 $\overrightarrow{AB}$ 的左侧;若 $cross < 0$,则点 $P$ 在向量 $\overrightarrow{AB}$ 的右侧。若 $cross = 0$,则点 $P$ 在向量 $\overrightarrow{AB}$ 上。
以下是一个简单的 Python 实现:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Vector:
def __init__(self, start, end):
self.start = start
self.end = end
self.x = end.x - start.x
self.y = end.y - start.y
def cross_product(v1, v2):
return v1.x * v2.y - v2.x * v1.y
def point_on_left(vector, point):
v1 = Vector(vector.start, point)
v2 = Vector(vector.start, vector.end)
cross = cross_product(v1, v2)
return cross > 0
# 示例用法
A = Point(0, 0)
B = Point(1, 1)
P = Point(1, 0)
AB = Vector(A, B)
print(point_on_left(AB, P)) # 输出 True
```
阅读全文