VTKオブジェクトの作成

VTKオブジェクトの作成#

この演習では,いくつかの異なるタイプのVTKデータセットの作成について説明します.

import numpy as np
import pyvista as pv
import vtk

try:
    from vtkmodules.util.numpy_support import numpy_to_vtk
except:  # noqa: E722
    from vtk.util.numpy_support import numpy_to_vtk

vtkImageData を作成する#

image = vtk.vtkImageData()
image.SetDimensions(10, 10, 2)
image.SetSpacing(1, 2, 5)
image.SetOrigin(-0.5, -3, 0)

ポイントデータの追加

values = np.arange(np.prod(image.GetDimensions()))
# Convert numpy array to VTK array
arr = numpy_to_vtk(values)
arr.SetName("values")  # CRITICAL
image.GetPointData().SetScalars(arr)
image
<vtkmodules.vtkCommonDataModel.vtkImageData(0x55b6961c05e0) at 0x7f5a1b5641c0>

PyVistaを使った簡単なプロット

pv.plot(image, show_edges=True)
b create vtk

vtkStructuredGrid を作成する#

# Define structured points with NumPy
x = np.arange(-10, 10, 0.25)
y = np.arange(-10, 10, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x**2 + y**2)
z = np.sin(r)

# Join the points
values = np.c_[x.ravel(), y.ravel(), z.ravel()]

coords = numpy_to_vtk(values)

points = vtk.vtkPoints()
points.SetData(coords)

grid = vtk.vtkStructuredGrid()
grid.SetDimensions(*z.shape, 1)
grid.SetPoints(points)
grid
<vtkmodules.vtkCommonDataModel.vtkStructuredGrid(0x55b698d5a540) at 0x7f5a196a32e0>

ポイントデータの追加

arr = numpy_to_vtk(z.ravel())
arr.SetName("z")  # CRITICAL
grid.GetPointData().SetScalars(arr)
0

PyVistaを使った簡単なプロット

pv.plot(grid, show_edges=True)
b create vtk
Open In Colab

Total running time of the script: (0 minutes 0.574 seconds)

Sphinx-Galleryによるギャラリー