Ho bisogno di tracciare una nuvola di punti 3D (numero di punti: N), quindi uno scafo convesso (in realtà un poliedro con N vertici) dai punti. Ho realizzato uno script in python con scipy.spatial ConvexHull per tracciare 8 punti e tracciare un cubo, la trama della nuvola di punti è ok, ma il cubo non è ok, perché il codice mette due linee che attraversano la faccia diagonale del cubo oltre alle linee di bordo. Non capisco perché trama le linee attraverso le facce.Scafo convesso 3D da nuvola di punti
Lo script:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from scipy.spatial import ConvexHull
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
points= np.array([[0,0,0],
[4,0,0],
[4,4,0],
[0,4,0],
[0,0,4],
[4,0,4],
[4,4,4],
[0,4,4]])
hull=ConvexHull(points)
edges= zip(*points)
for i in hull.simplices:
plt.plot(points[i,0], points[i,1], points[i,2], 'r-')
ax.plot(edges[0],edges[1],edges[2],'bo')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_xlim3d(-5,5)
ax.set_ylim3d(-5,5)
ax.set_zlim3d(-5,5)
plt.show()
Risultato dello script:
Come posso modificare la mia domanda? Ho dimenticato "Ciao a tutti", dalla prima riga, e se clicco su "modifica" e voglio salvare le modifiche, non succede nulla. – Feri