I am trying to make a box. Actually, I started with a python script to draw a cube like:
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()
To get the box, I multiplied the matrix of points by the following 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]]
as:
Z = np.zeros((8,3)) for i in range(8): Z[i,:] = np.dot(points[i,:],P) Z = 10.0*Z
My idea is as follows:
ax.scatter3D(Z[:, 0], Z[:, 1], Z[:, 2]) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show()
And here is what I get:

How can I then place surfaces on these different points to form a box (in the path of the cube above)?