Как построить одновременно прямоугольник в 3D и векторы в Python (желательно с помощью matplotlib)? - PullRequest
0 голосов
/ 17 января 2019

В приведенном ниже коде показаны векторы, я хочу на одном и том же трехмерном рисунке трехмерный прямоугольник с переменной длиной, и я не знаю, как достичь этой цели. Пожалуйста, помогите.

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection

indices_definition = [(0,0,0), (0.12,0,0), (0,0.35,0), (0,0,1.33)]

indices_definition_array = [np.array(list(i)) for i in indices_definition]

pts = []

pts += indices_definition_array   #points = points + cube_definition_array


vect = [indices_definition_array[1] - indices_definition_array[0], indices_definition_array[2] - indices_definition_array[0], indices_definition_array[3] - indices_definition_array[0]]    

pts += [indices_definition_array[0] + vect[0] + vect[1]] 

pts += [indices_definition_array[0] + vect[0] + vect[2]]

pts += [indices_definition_array[0] + vect[1] + vect[2]]

pts += [indices_definition_array[0] + vect[0] + vect[1] + vect[2]]   

pts = np.array(pts)

bordes = [[pts[0], pts[3]],[pts[0], pts[1]],[pts[0], pts[2]]]  

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

v_indices = Poly3DCollection(bordes, linewidths=4, edgecolors='y')

v_indices.set_facecolor((0,0,1,0.1))

ax.add_collection3d(v_indices)

ax.scatter(pts[:,0], pts[:,1], pts[:,2], s=0)

ax.set_aspect('equal')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...