Griglie strutturate, operazioni booleane e analisi scientifica 3D basata su VTK.
PyVista è una libreria Python che rende semplice lavorare con VTK (Visualization Toolkit), uno strumento potente ma complesso usato in ambito scientifico e ingegneristico per visualizzare e analizzare dati 3D: simulazioni, mesh, griglie di dati, campi scalari (come temperatura o pressione) distribuiti nello spazio.
import pyvista as pv sfera = pv.Sphere(radius=1.0) print(sfera) sfera.plot() # apre una finestra 3D interattiva
Una griglia di punti organizzata in modo regolare (come una scacchiera in 3D), usata per rappresentare volumi di dati, ad esempio il risultato di una simulazione fisica su una griglia regolare.
PyVista offre forme geometriche già pronte (sfere, cubi, cilindri, coni) per iniziare velocemente senza costruire mesh da zero.
Permettono di combinare due mesh 3D come si fa con gli insiemi: unione, differenza, intersezione. Molto usate in ambito CAD e ingegneristico per creare forme complesse partendo da forme semplici.
Un valore numerico associato a ogni punto o cella della mesh (es. temperatura, pressione, altezza). PyVista può colorare la mesh in base a questi valori per visualizzarli intuitivamente.
Le scene 3D possono essere salvate come immagini statiche, utile per report o presentazioni senza dover riaprire la visualizzazione interattiva.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.
Esempio per il punto 1
import pyvista as pv sfera = pv.Sphere(radius=1.0) cubo = pv.Cube() print(sfera.n_points, cubo.n_points)
Esempio per il punto 2
sfera["altezza"] = sfera.points[:, 2] print(sfera["altezza"].min(), sfera["altezza"].max())
Esempio per il punto 3
differenza = sfera.boolean_difference(cubo)
print(differenza.n_points)
Esempio per il punto 4
plotter = pv.Plotter(off_screen=True) plotter.add_mesh(sfera, scalars="altezza") plotter.screenshot("sfera.png")
Tocca ogni termine per vederne la definizione.
Crea una sfera e un cilindro più piccolo posizionato al centro. Usa boolean_difference() per "bucare" la sfera con il cilindro e salva uno screenshot del risultato.
Crea una sfera e assegna un campo scalare basato sulla distanza di ogni punto dal centro. Visualizza la mesh colorata in base a questo valore e salva uno screenshot.
Questo codice genera un errore: si assegna un array di 50 valori a una mesh che ha 200 punti, con mesh["valore"] = array_di_50_elementi. Spiega perché il numero di valori deve corrispondere al numero di punti della mesh.
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.