本文整理汇总了Python中vtk.vtkCylinderSource函数的典型用法代码示例。如果您正苦于以下问题:Python vtkCylinderSource函数的具体用法?Python vtkCylinderSource怎么用?Python vtkCylinderSource使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了vtkCylinderSource函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __draw_sample_as_cylinder
def __draw_sample_as_cylinder(self,sample,color,warning_color):
a = self.__cylinder_actors.get(sample)
if a is not None:
a.SetVisibility(1)
return
p1 = sample.coil_center
p2 = sample.sphere_intersection
p3 = p1+(p2-p1)*1.2 # an extra 20% to guarantee it goes into the sphere
#height = self.COIL_HEIGHT*1.2
height = self.COIL_HEIGHT*500
source = vtk.vtkCylinderSource()
source.SetCenter(0,0,0)
#source.SetRadius(self.SAMPLE_RADIUS)
source.SetRadius(2)
source.SetHeight(height)
source.SetResolution(8)
trans = vtk.vtkTransform()
trans.Identity()
v1 = p1-p2
v1 /= np.linalg.norm(v1)
v2 = (0,1,0)
vp = np.cross(v2,v1)
angle = np.arcsin(np.linalg.norm(vp))
angle_deg = 180*angle/np.pi
trans.Translate(p3)
trans.RotateWXYZ(angle_deg,vp)
trans.Translate((0,height/2,0))
trans_filter = vtk.vtkTransformPolyDataFilter()
trans_filter.SetInputConnection(source.GetOutputPort())
trans_filter.SetTransform(trans)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(trans_filter.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
self.ren.AddActor(actor)
self.__cylinder_actors[sample]=actor
prop = actor.GetProperty()
if sample.timing_error > 1:
if warning_color is None:
warning_color = self.SAMPLE_CYLINDER_WARNING_COLOR
prop.SetColor(warning_color)
else:
if color is None:
color = self.SAMPLE_CYLINDER_COLOR
prop.SetColor(color)
info = vtk.vtkInformation()
info.Set(vtk.vtkShadowMapBakerPass.RECEIVER(),0)
info.Set(vtk.vtkShadowMapBakerPass.OCCLUDER(),0)
#prop.SetAmbient(0.8)
actor.SetPropertyKeys(info)
示例2: vtkdisk
def vtkdisk(c=(0, 0, 1)):
# create a rendering window and renderer
# ren = vtk.vtkRenderer()
# renWin = vtk.vtkRenderWindow()
# renWin.AddRenderer(ren)
# create a renderwindowinteractor
# iren = vtk.vtkRenderWindowInteractor()
# iren.SetRenderWindow(renWin)
# create source
source = vtk.vtkDiskSource()
source = vtk.vtkCylinderSource()
source.SetCenter(c)
source.SetRadius(0.01)
# source.SetOuterRadius(.2)
source.SetResolution(10)
source.SetHeight(0.001)
# source.SetCircumferentialResolution(100)
source.Update()
# source2.SetCenter(.3,0,0)
# source2.Update()
# mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInput(source.GetOutput())
# actor
diskactor = vtk.vtkActor()
diskactor.SetMapper(mapper)
return diskactor
示例3: makeCylinderPtsVTP
def makeCylinderPtsVTP(locXYZ,radius=50,height=50,res=10):
# Load the file
if type(locXYZ) == np.ndarray:
loc = locXYZ
elif type(locXYZ) == str:
loc = np.genfromtxt(locXYZ)
# Make append poly filter
appPoly = vtk.vtkAppendPolyData()
# Loop through all the locations
for pt in loc[:,0:3]:
# Make the cylinters
cyl = vtk.vtkCylinderSource()
cyl.SetCenter(pt)
cyl.SetRadius(radius)
cyl.SetHeight(height)
cyl.SetResolution(res)
# Rotate to be vertical
rot = vtk.vtkTransform()
rot.Translate(-pt)
rot.PostMultiply()
rot.RotateX(90)
rot.Translate(pt)
tranFor = vtk.vtkTransformPolyDataFilter()
tranFor.SetInputConnection(cyl.GetOutputPort())
tranFor.SetTransform(rot)
tranFor.Update()
# Append
appPoly.AddInputConnection(tranFor.GetOutputPort())
# Update and return.
appPoly.Update()
return appPoly.GetOutput()
示例4: __init__
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
self.frame = QtGui.QFrame()
layout = QtGui.QVBoxLayout()
self.vtkWidget = \
QVTKRenderWindowInteractor(self.frame)
layout.addWidget(self.vtkWidget)
self.renderer = vtk.vtkRenderer()
rw = self.vtkWidget.GetRenderWindow()
rw.AddRenderer(self.renderer)
self.interactor = rw.GetInteractor()
cylinder = vtk.vtkCylinderSource()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection( \
cylinder.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
self.renderer.AddActor(actor)
self.renderer.ResetCamera()
self.frame.setLayout(layout)
self.setCentralWidget(self.frame)
self.show()
self.interactor.Initialize()
示例5: create_glyphs
def create_glyphs (self, poly):
if self.glyph_type == 'sphere':
glyph = vtk.vtkSphereSource()
glyph.SetRadius(1)
glyph.SetPhiResolution(8)
glyph.SetThetaResolution(8)
elif self.glyph_type == 'cylinder':
glyph = vtk.vtkCylinderSource()
glyph.SetHeight(self.height)
glyph.SetRadius(self.radius)
glyph.SetCenter(0,0,0)
glyph.SetResolution(10)
glyph.CappingOn()
tt = vtk.vtkTransform()
tt.RotateZ(90)
tf = vtk.vtkTransformPolyDataFilter()
tf.SetInput(glyph.GetOutput())
tf.SetTransform(tt)
tf.Update()
glypher = vtk.vtkGlyph3D()
glypher.SetInput(poly)
glypher.SetSource(tf.GetOutput())
glypher.SetVectorModeToUseNormal()
glypher.SetScaleModeToScaleByScalar()
glypher.SetScaleFactor(self.glyph_scale_factor)
glypher.Update()
return glypher
示例6: __init__
def __init__(self, renderers, radius = 2.0, height = 8.0, rotationXYZ = [0, 0, 0], offsetXYZ = [0, 0, 0]):
'''
Initialize the cylinder.
'''
# Call the parent constructor
super(Cylinder,self).__init__(renderers)
cylinderSource = vtk.vtkCylinderSource()
cylinderSource.SetCenter(0.0, 0.0, 0.0)
cylinderSource.SetRadius(radius)
cylinderSource.SetHeight(height)
# Make it a little more defined
cylinderSource.SetResolution(24)
# Transform scale it to the right size
trans = vtk.vtkTransform()
trans.Scale(1, 1, 1)
trans.Translate(offsetXYZ[0], offsetXYZ[1], offsetXYZ[2])
trans.RotateZ(rotationXYZ[2])
trans.RotateX(rotationXYZ[0])
trans.RotateY(rotationXYZ[1])
transF = vtk.vtkTransformPolyDataFilter()
transF.SetInputConnection(cylinderSource.GetOutputPort())
transF.SetTransform(trans)
cylinderMapper = vtk.vtkPolyDataMapper()
cylinderMapper.SetInputConnection(transF.GetOutputPort())
self.vtkActor.SetMapper(cylinderMapper)
# Change it to a red sphere
self.vtkActor.GetProperty().SetColor(0.8, 0.8, 0.3)
示例7: CylinderSource
def CylinderSource(self, currentElement):
source = vtk.vtkCylinderSource()
try:
source.SetRadius( float(currentElement.get('SetRadius')) )
except:
self.logger.error(' .. <CylinderSource> failed to SetRadius')
if 'SetHeight' in currentElement.keys():
try:
source.SetHeight( float(currentElement.get('SetHeight')) )
except:
self.logger.error(' .. <CylinderSource> failed to SetHeight')
if 'boneLength' in currentElement.keys():
try:
source.SetHeight( self.bonelengths[currentElement.get('boneLength')] )
except:
self.logger.error(' .. <CylinderSource> failed to SetHeight from boneLength')
if 'SetResolution' in currentElement.keys():
try:
source.SetResolution( int(currentElement.get('SetResolution')) )
except:
self.logger.error(' .. <CylinderSource> failed to SetResolution')
if 'SetCapping' in currentElement.keys():
try:
source.SetCapping( int(currentElement.get('SetCapping')) )
except:
self.logger.error(' .. <CylinderSource> failed to SetCapping')
return source
示例8: createCylinderActor
def createCylinderActor(color=None,
radius=0.25,
height=0.3,
center=None,
):
cylinder = vtk.vtkCylinderSource()
cylinder.SetResolution(128)
cylinder.SetRadius(radius)
cylinder.SetHeight(height)
cylinderMapper = vtk.vtkPolyDataMapper()
polyDataFilter = vtk.vtkTransformPolyDataFilter()
polyDataFilter.SetInputConnection(cylinder.GetOutputPort())
transform = vtk.vtkTransform()
if center is not None:
transform.Translate(*center)
else:
transform.Translate(0,0,height/2)
transform.RotateWXYZ(90, 1,0,0)
polyDataFilter.SetTransform(transform)
cylinderMapper.SetInputConnection(polyDataFilter.GetOutputPort())
cylinderActor = vtk.vtkActor()
cylinderActor.SetMapper(cylinderMapper)
if color is not None:
cylinderActor.GetProperty().SetColor(color)
return cylinderActor
示例9: __init__
def __init__(self,center=(0,-2,0) , radius=0.5, height=2, color=(0,1,1),
rotXYZ=(0,0,0), resolution=50 ):
""" cylinder """
self.src = vtk.vtkCylinderSource()
self.src.SetCenter(0,0,0)
self.src.SetHeight(height)
self.src.SetRadius(radius)
self.src.SetResolution(resolution)
# SetResolution
# SetCapping(int)
# CappingOn() CappingOff()
# this transform rotates the cylinder so it is vertical
# and then translates the lower tip to the center point
transform = vtk.vtkTransform()
transform.Translate(center[0], center[1], center[2]+height/2)
transform.RotateX(rotXYZ[0])
transformFilter=vtk.vtkTransformPolyDataFilter()
transformFilter.SetTransform(transform)
transformFilter.SetInputConnection(self.src.GetOutputPort())
transformFilter.Update()
self.mapper = vtk.vtkPolyDataMapper()
#self.mapper.SetInput(self.src.GetOutput())
self.mapper.SetInput( transformFilter.GetOutput() )
self.SetMapper(self.mapper)
self.SetColor(color)
示例10: Cylinder
def Cylinder(self, x, y, z):
''' create a cylinder and return the actor '''
obj = vtk.vtkCylinderSource()
actor = self.MapObject(obj)
actor.GetProperty().SetColor(0.8, 0.5, 0.3)
actor.GetProperty().SetSpecular(0.3)
actor.SetPosition(x, y, z)
示例11: drawVtkSymb
def drawVtkSymb(symbType,renderer, RGBcolor, vPos, vDir, scale):
'''Adds to the renderer a symbol of type 'arrow', 'doubleArrow',
'cone', 'doubleCone', 'sphere', 'doubleSphere','cube' , 'doubleCube',
'cylinder', 'doubleCylinder'
:param symbType: type of symbol (available types: 'arrow', 'doubleArrow',
'cone', 'doubleCone', 'sphere', 'doubleSphere','cube' ,
'doubleCube', 'cylinder', 'doubleCylinder')
:param renderer: vtk renderer
:param RGBcolor: list [R,G,B] with the 3 components of color
:param vPos: list [x,y,z] with the 3 coordinates of the point where
to place the symbol.
:param vDir: director vector to orient the symbol
:param scale: scale to be applied to the symbol representation
'''
symTpLow=symbType.lower()
if 'arrow' in symTpLow:
symbSource=vtk.vtkArrowSource()
elif 'cone' in symTpLow:
symbSource=vtk.vtkConeSource()
elif 'sphere' in symTpLow:
symbSource=vtk.vtkSphereSource()
elif 'cube' in symTpLow:
symbSource=vtk.vtkCubeSource()
elif 'cylinder' in symTpLow:
symbSource=vtk.vtkCylinderSource()
vPosVx=[vPos[i]-scale/2.0*vDir[i] for i in range(3)] #vertex position
addSymb(symbSource,renderer, RGBcolor, vPosVx, vDir, scale)
if 'double' in symTpLow:
vPosVx=[vPosVx[i]-scale*vDir[i] for i in range(3)] #vertex position
addSymb(symbSource,renderer, RGBcolor, vPosVx, vDir, scale)
示例12: __init__
def __init__(self, module_manager):
SimpleVTKClassModuleBase.__init__(
self, module_manager,
vtk.vtkCylinderSource(), 'Processing.',
(), ('vtkPolyData',),
replaceDoc=True,
inputFunctions=None, outputFunctions=None)
示例13: testEncodings
def testEncodings(self):
# Render something
cylinder = vtk.vtkCylinderSource()
cylinder.SetResolution(8)
cylinderMapper = vtk.vtkPolyDataMapper()
cylinderMapper.SetInputConnection(cylinder.GetOutputPort())
cylinderActor = vtk.vtkActor()
cylinderActor.SetMapper(cylinderMapper)
cylinderActor.RotateX(30.0)
cylinderActor.RotateY(-45.0)
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
ren.AddActor(cylinderActor)
renWin.SetSize(200, 200)
ren.ResetCamera()
ren.GetActiveCamera().Zoom(1.5)
renWin.Render()
# Get a vtkImageData with the rendered output
w2if = vtk.vtkWindowToImageFilter()
w2if.SetInput(renWin)
w2if.SetShouldRerender(1)
w2if.SetReadFrontBuffer(0)
w2if.Update()
imgData = w2if.GetOutput()
# Use vtkDataEncoder to convert the image to PNG format and Base64 encode it
encoder = vtk.vtkDataEncoder()
base64String = encoder.EncodeAsBase64Png(imgData).encode('ascii')
# Now Base64 decode the string back to PNG image data bytes
outputBuffer = bytearray(120000)
inputArray = array.array('B', base64String)
utils = vtk.vtkIOCore.vtkBase64Utilities()
actualLength = utils.Decode(inputArray, 120000, outputBuffer)
outputArray = bytearray(actualLength)
outputArray[:] = outputBuffer[0:actualLength]
# And write those bytes to the disk as an actual PNG image file
with open('TestDataEncoder.png', 'wb') as fd:
fd.write(outputArray)
# Create a vtkTesting object and specify a baseline image
rtTester = vtk.vtkTesting()
for arg in sys.argv[1:]:
rtTester.AddArgument(arg)
rtTester.AddArgument("-V")
rtTester.AddArgument("TestDataEncoder.png")
# Perform the image comparison test and print out the result.
result = rtTester.RegressionTest("TestDataEncoder.png", 0.0)
if result == 0:
raise Exception("TestDataEncoder failed.")
示例14: visualize
def visualize():
A = initPoints(particleA)
B = initPoints(particleB)
C = initPoints(particleC)
displayDict = {}
# Set up the renderer and redering window
renderer = vtk.vtkRenderer()
renwin = vtk.vtkRenderWindow()
renwin.SetSize(1600, 1400)
renwin.StereoCapableWindowOn()
renwin.StereoRenderOn()
renwin.SetStereoTypeToCrystalEyes()
renwin.AddRenderer(renderer)
ptsComp = vtk.vtkPoints()
posComp = vnp.numpy_to_vtk(np.array([[0, 0, 0]], order='C'), deep=True)
ptsComp.SetData(posComp)
polyDataComp = vtk.vtkPolyData()
polyDataComp.SetPoints(ptsComp)
sourceComp = vtk.vtkCylinderSource()
sourceComp.SetResolution(20)
sourceComp.SetRadius(compartment['radius'] + particleScale)
sourceComp.SetHeight(compartment['length'] + 2 * particleScale)
sourceComp.SetCenter(0, -compartment['length']/2, 0)
glyphComp = vtk.vtkGlyph3D()
glyphComp.SetSource(sourceComp.GetOutput())
glyphComp.SetInput(polyDataComp)
glyphComp.ScalingOff()
# glyphComp.SetScaleModeToDefault()
# glyphComp.SetScaleFactor(particleScale)
mapperComp = vtk.vtkPolyDataMapper()
mapperComp.SetInput(glyphComp.GetOutput())
mapperComp.ImmediateModeRenderingOn()
actorComp = vtk.vtkActor()
actorComp.SetMapper(mapperComp)
actorComp.GetProperty().SetOpacity(0.2)
actorComp.GetProperty().SetColor(1, 1, 1)
actorComp.SetOrientation(0, 90, 90)
renderer.AddActor(actorComp)
renderer.AddActor(A['actor'])
renderer.AddActor(B['actor'])
renderer.AddActor(C['actor'])
print 'Create camera'
camera = vtk.vtkCamera()
camera.SetPosition(300e-6, 200.0e-6, -300.0e-6)
camera.SetFocalPoint(0, 0, 0)
camera.ComputeViewPlaneNormal()
renderer.SetActiveCamera(camera)
renderer.ResetCamera()
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(renwin)
callback = TimerCallback(A, B, C)
interactor.Initialize()
interactor.AddObserver('TimerEvent', callback.execute)
timerId = interactor.CreateRepeatingTimer(1)
print 'Here'
# renwin.FullScreenOn()
interactor.Start()
示例15: draw_block_error
def draw_block_error(self,block):
#universal
if self.__error_triple is None:
big_r = self.experiment.sphere_radius
height = big_r*0.05
source = vtk.vtkCylinderSource()
source.SetCenter(0,0,0)
source.SetResolution(20)
source.CappingOff()
source.SetHeight(height)
trans = vtk.vtkTransform()
trans_filter = vtk.vtkTransformPolyDataFilter()
trans_filter.SetInputConnection(source.GetOutputPort())
trans_filter.SetTransform(trans)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(trans_filter.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
self.ren.AddActor(actor)
self.__error_actor = actor
prop = actor.GetProperty()
prop.SetColor(self.ERROR_COLOR)
prop.SetOpacity(0.8)
self.__error_triple = (source,trans,actor)
else:
source,trans,actor = self.__error_triple
actor.SetVisibility(1)
#specific
big_r = self.experiment.sphere_radius
height = big_r*0.05
radius = block.circle_radius
rel_center = block.circle_relative_center
sphere_center = self.experiment.sphere_center
circle_center = sphere_center+rel_center
source.SetRadius(radius)
trans.Identity()
v1 = rel_center / np.linalg.norm(rel_center)
v2 = (0,1,0)
vp = np.cross(v2,v1)
angle = np.arcsin(np.linalg.norm(vp))
angle_deg = 180*angle/np.pi
trans.Translate(circle_center)
trans.RotateWXYZ(angle_deg,vp)
trans.Translate((0,height/2,0))