python-zeichnen von 3D-cube
Ich versuche, zeichnen Sie einen quader. Tatsächlich fing ich von python-Skript Zeichnung eines Würfels als:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
points = np.array([[-1, -1, -1],
[1, -1, -1 ],
[1, 1, -1],
[-1, 1, -1],
[-1, -1, 1],
[1, -1, 1 ],
[1, 1, 1],
[-1, 1, 1]])
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
r = [-1,1]
X, Y = np.meshgrid(r, r)
ax.plot_surface(X,Y,1, alpha=0.5)
ax.plot_surface(X,Y,-1, alpha=0.5)
ax.plot_surface(X,-1,Y, alpha=0.5)
ax.plot_surface(X,1,Y, alpha=0.5)
ax.plot_surface(1,X,Y, alpha=0.5)
ax.plot_surface(-1,X,Y, alpha=0.5)
ax.scatter3D(points[:, 0], points[:, 1], points[:, 2])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
Werden, um ein quader, habe ich multipliziert die Punkte-matrix durch die folgende matrix:
P =
[[2.06498904e-01 -6.30755443e-07 1.07477548e-03]
[1.61535574e-06 1.18897198e-01 7.85307721e-06]
[7.08353661e-02 4.48415767e-06 2.05395893e-01]]
als:
Z = np.zeros((8,3))
for i in range(8):
Z[i,:] = np.dot(points[i,:],P)
Z = 10.0*Z
Meine Idee ist dann zu vertreten, wie folgt:
ax.scatter3D(Z[:, 0], Z[:, 1], Z[:, 2])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
Und das ist, was ich bekomme:
Wie kann ich dann setzen Oberflächen, die auf diese verschiedenen Punkte für die form der quader (in der Art des Würfels oben)?
InformationsquelleAutor rogwar | 2017-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Plot-Oberflächen mit 3D-PolyCollection (Beispiel)
Ist es ein Weg, um fügen Sie diesen cube-über ein vorhandenes 2D-Bild?
InformationsquelleAutor pcu
Gegeben, dass der Titel dieser Frage ist 'python-zeichnen von 3D-cube", das ist der Artikel, den ich gefunden als ich gegoogelt, die Frage.
Für den Zweck von denen, die das gleiche tun wie ich, die wollen einfach einen Würfel zu zeichnen, ich habe die folgende Funktion, die vier Punkte von einem Würfel eine Ecke zuerst, und dann die drei benachbarten Punkte um die Ecke.
Es dann Beete-Würfel.
Ist die Funktion unter:
Geben das Ergebnis:
InformationsquelleAutor MeshachBlue
Siehe meine andere Antwort (https://stackoverflow.com/a/49766400/3912576) für eine einfachere Lösung.
Hier ist ein komplizierter Satz von Funktionen, die matplotlib-Skala besser und immer Kräfte, die den Eingang zu einem Würfel.
Den ersten parameter übergeben zu cubify_cube_definition ist der Ausgangspunkt, der zweite parameter ist der zweite Punkt, cube-Länge ist definiert von diesem Punkt, die Dritte ist eine rotation Punkt, es wird verschoben werden, entsprechend der Länge der ersten und zweiten.
Erzeugt das folgende Ergebnis:
InformationsquelleAutor MeshachBlue
Getan mit matplotlib und koordinieren geometrie
InformationsquelleAutor Preetham Dasari