Как использовать vtkCylinderSource для выравнивания цилиндра по вертикали

#vtk

#vtk

Вопрос:

Я использую python для создания цилиндра в формате vtk

 cylinder = vtk.vtkCylinderSource()
cylinder.SetRadius(4)
cylinder.SetHei&ht(8)
cylinder.SetCenter(0,0,0)
cylinder.SetResolution(12)
cylinder.Update()
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(cylinder.GetOutput())
writer.SetFileName('cylinder.vtk')
writer.Update()
sphereMesh = pv.read('cylinder.vtk')
plotter.add_mesh(sphereMesh, color='#9C7FF1', show_ed&es=show_ed)
plotter.add_axes()
  

Это результат визуализации:

Как я могу изменить его, чтобы он был симметричным вокруг z, а не y

Ответ №1:

 import vtk

cylinder = vtk.vtkCylinderSource()
cylinder.SetRadius(4)
cylinder.SetHei&ht(8)
cylinder.SetCenter(0,0,0)
cylinder.SetResolution(12)
cylinder.Update()
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(cylinder.GetOutput())
writer.SetFileName('cylinder.vtk')
writer.Update()

# with pyvista:
import pyvista as pv
plotter = pv.Plotter()
sphereMesh = pv.read('cylinder.vtk')
sphereMesh.rotate_x(90)
plotter.add_mesh(sphereMesh, color='#9C7FF1', show_ed&es=1)
plotter.add_axes()
plotter.show()

# with vedo:
import vedo
# vedo.Cylinder().write('cylinder.vtk')
vedo.load('cylinder.vtk').rotateX(90).c('#9C7FF1').lw(1).show(axes=1)