我正在使用pyplot箭头绘制几个向量,如下所示:
M = np.array([[Vx, Vy], [Vx, 0], [0, Vy], [ax, ay], [ax, 0], [0, ay],
[-Vx + ax, -Vy + ay],
])
rows, cols = M.T.shape
colors = ['b', 'b', 'b', 'r', 'r', 'r', 'g']
labels = ['V, at', 'Vx', 'Vy', 'a', 'ax', 'ay', 'an']
for i, l in enumerate(range(0, cols)):
plt.axes().arrow(X, Y, M[i, 0], M[i, 1], head_width=0.5, head_length=0.5, color=colors[i])
plt.text(X + M[i, 0] - 0.7, Y + M[i, 1] + 0.7, s=labels[i],
bbox={'facecolor': str(colors[i]), 'alpha': 0.5})

我想将向量的末端与虚线连接起来,以表明一些向量实际上是另外两个向量的总结:

我试着这样做:
x1, y1 = [Vx + 1, Vx + 1], [-Vy + 2, Y]
x2, y2 = [Vx + 1, X], [-Vy + 2, -Vy + 2]
plt.plot(x1, y1, '--', color='c')
plt.plot(x2, y2, '--', color='c')
x3, y3 = [X, ax + 1], [Y + ay, Y + ay]
x4, y4 = [ax + 1, ax + 1], [Y + ay, Y]
plt.plot(x3, y3, '--', color='m')
plt.plot(x4, y4, '--', color='m')
x5, y5 = [-Vx + ax - 0.5, ax + 1], [-Y - Vy - ay - 0.5, Y + ay]
x6, y6 = [-Vx - ax, ax + 1], [-Vy - ay, Y + ay]
plt.plot(x5, y5, '--', color='y')
plt.plot(x6, y6, '--', color='y')但行变得有点错误(下图)和我还必须添加数字,如0.5,1等,以使它看起来像样。这样,如果改变矢量坐标值,就会不正确地显示直线。

那么,是否有更好的方法将向量与虚线连接起来?那么,如果我更改坐标,虚线仍将被正确绘制?矢量坐标值是我在本例中使用的:
X = 1
Y = 8.2
Vx = 5.4
Vy = -3.1
V = 6.3
ax = 2.2
ay = -8.8
a = 9.1
at = 6.3
an = 6.6发布于 2020-11-18 11:43:55
我想出来了!基本上我只是把坐标放错了方向。以下是正确的代码:
x1, y1 = [X + Vx, X + Vx], [Y + Vy, Y]
x2, y2 = [X + Vx, X], [Y + Vy, Y + Vy]
plt.plot(x1, y1, '--', color='c')
plt.plot(x2, y2, '--', color='c')
x3, y3 = [X, X + ax], [Y + ay, Y + ay]
x4, y4 = [X + ax, X + ax], [Y + ay, Y]
plt.plot(x3, y3, '--', color='m')
plt.plot(x4, y4, '--', color='m')
x5, y5 = [X + ax - Vx, X + ax], [Y + ay - Vy, Y + ay]
x6, y6 = [X + Vx, X + ax], [Y + Vy, Y + ay]
plt.plot(x5, y5, '--', color='y')
plt.plot(x6, y6, '--', color='y')

https://stackoverflow.com/questions/64891855
复制相似问题