我已经画了一个虚线圆。每个点代表一个行人,其中每个人也应具有速度。这就是为什么我要为每个行人绘制一个朝外的向量,代表其速度。 我还需要每个行人的坐标及其速度,因为我希望能够更改他们的速度。 Example image of the desired circle。
我用下面的代码绘制了圆圈。
import numpy as np
import pdb
import matplotlib
import matplotlib.pyplot as plt
fig, axes = plt.subplots()
theta = np.linspace(0, 2*np.pi, 100)
r = 0.5
x = r*np.cos(theta)
y = r*np.sin(theta)
plt.gcf().gca().plot(x, y, 'ko')
plt.axis('equal')
plt.show()
答案 0 :(得分:0)
您需要一些数学运算。
让我们作为水平方向的单位矢量:
u = np.array([1, 0])
根据对应的角度theta旋转向量以获得尽可能多的数据点:
def rotate_z(theta):
R =np.array([
[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]])
return R
现在,对于所有数据点,您都可以:
vecs =[]
for i in range(len(theta)):
R = rotate_z(theta[i])
vec = R @ u # matrix multiply
vec = vec + np.array([x[i], y[i]])
vecs.append(vec)
现在您已经准备好要绘制的向量(我想您可以使用plt.quiver(..)!
答案 1 :(得分:0)