Hier habe ich eine parametrische Gleichung.Python - Plotten Geschwindigkeit und Beschleunigungsvektoren an bestimmten Punkten
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
t = np.linspace(0,2*np.pi, 40)
# Position Equation
def rx(t):
return t * np.cos(t)
def ry(t):
return t * np.sin(t)
# Velocity Vectors
def vx(t):
return np.cos(t) - t*np.sin(t)
def vy(t):
return np.sin(t) + t*np.cos(t)
# Acceleration Vectors
def ax(t):
return -2*np.sin(t) - t*np.cos(t)
def ay(t):
return 2*np.cos(t) - t*np.sin(t)
fig = plt.figure()
ax1 = fig.gca(projection='3d')
z = t
ax1.plot(rx(z), r(z), z)
plt.xlim(-2*np.pi,2*np.pi)
plt.ylim(-6,6)
ax.legend()
Also ich habe diese parametrische Gleichung, die diese Grafik erstellt. in meinem Code
Ich habe über meine Geschwindigkeit und Beschleunigung parametrische Gleichungen definiert.
Was ich tun möchte, ist die grafische Darstellung der Beschleunigungs- und Geschwindigkeitsvektoren in meinem obigen Positionsdiagramm an definierten Punkten. (Id est, t = pi/2, 3pi/2, 2 pi)
Etwas wie folgt aus:
Python/matplotlib : plotting a 3d cube, a sphere and a vector?
aber ich möchte etwas mehr geradeaus tun, da ich jeden Punkt t definieren müssen in zwei Gleichungen.
Ist so etwas möglich? Ich kann nur Vektorfelder finden und was nicht.
Vielen Dank.
Frage bearbeiten
# t = pi/4
t_val_start_pi4 = np.pi/4
vel_start_pi4 = [rx(t_val_start_pi4), ry(t_val_start_pi4), t_val_start_pi4]
vel_end_pi4 = [rx(t_val_start_pi4) + vx(t_val_start_pi4), ry(t_val_start_pi4)+vy(t_val_start_pi4), t_val_start_pi4 ]
vel_vecs_pi4 = (t_val_start_pi4 , vel_end_pi4)
vel_arrow_pi4 = Arrow3D(vel_vecs_pi4[0],vel_vecs_pi4[1], vel_vecs_pi4[2], mutation_scale=20, lw=1, arrowstyle="-|>", color="b")
axes.add_artist(vel_arrow_pi4)
Es gibt mir eine Fehlermeldung, Tuple out of index
Die folgenden wird gezeigt, wie die Pfeile zu ziehen. Sobald Sie die Position des Vektor-Tails, die Länge des Vektors, die Richtung des Vektors und die Art des Vektors berechnet haben, können Sie den Vektor verwenden: http://matplotlib.org/examples/pylab_examples/arrow_simple_demo.html – boardrider
stellt die erste Null die Position der Schwänze dar und die nächste die Länge der Vektoren? 'ax.arrow (0, 0, 0.5, 0.5, head_width = 0.05, head_length = 0.1, fc = 'k', ec = 'k')' – DarthLazar
@DarthLazar - Bitte beachten Sie die [Dokumentation] (http: // matplotlib .org/api/axes_api.html # matplotlib.axes.Axes.arrow) für diese Methode –