2016-11-26 2 views
0

I eine Kurve in einem 3D-Raum am Plotten unter Verwendung von drei Vektoren X, Y und Z.Projizieren einer Kurve im 3D-Raum

Wie kann ich die Projektionen der Kurve auf die Ebene XOY, XOZ, YOZ zeichnen?

import matplotlib.pylab as plt 
from mpl_toolkits.mplot3d.axes3d import Axes3D 
fig = plt.figure() 
ax = Axes3D(fig) 
X = [4, 2, 7, 4] 
Y = [7, 4, 9, 6] 
Z = [9, 6, 10, 3] 
ax.plot(X, Y, Z, 'b-', linewidth=4, label='parametric curve') 
plt.show() 

Antwort

0

Da Sie einfach Punkte im 3D-Raum Plotten (was bedeutet, dass, obwohl Sie es parametrischer nennen, Ihre Kurve nicht parametrisch ist), erhalten Sie die „Projektion“ nur um die jeweilige Dimension auf Null.

Zum Beispiel zum Plotten auf th Xoy Ebene, dann würden Sie die Z Komponente vernachlässigen und

zeros = [0,0,0,0] 
plt.plot(X,Y,zeros) 

Insgesamt nutzen diese wie

Sie aussehen würde
import matplotlib.pylab as plt 
from mpl_toolkits.mplot3d.axes3d import Axes3D 
fig = plt.figure() 
ax = Axes3D(fig) 
X = [4, 2, 7, 4] 
Y = [7, 4, 9, 6] 
Z = [9, 6, 10, 3] 
ax.plot(X, Y, Z, 'b-', linewidth=4, label='curve') 

null = [0]*len(Z) 
ax.plot(null, Y, Z) 
ax.plot(X,null, Z) 
ax.plot(X, Y, null) 

plt.show() 

enter image description here

+0

Vielen so viel!! – rmas

Verwandte Themen