本文整理汇总了Python中vtk.vtkCoordinate函数的典型用法代码示例。如果您正苦于以下问题:Python vtkCoordinate函数的具体用法?Python vtkCoordinate怎么用?Python vtkCoordinate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了vtkCoordinate函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__( self, name, interactor, **args ):
self.vtk_coord = vtk.vtkCoordinate()
self.vtk_coord.SetCoordinateSystemToNormalizedDisplay()
self.StateChangedSignal = SIGNAL('StateChanged')
self.process_mode = ProcessMode.Default
self.currentSliders = {}
self.slider_postions = [ [ [ 0.25, 0.75 ] ], [ [0.01,0.48], [0.52, 0.99 ] ], [ [0.01,0.3], [0.35,0.7], [0.75, 0.99 ] ], [ [0.01,0.24], [0.26,0.49], [0.51,0.74], [0.76, 0.99 ] ] ]
self.slidersVisible = [ True, False, False, False ]
self.interactor = interactor
self.InteractionState = None
self.LastInteractionState = None
self.activeSliceIndex = 0
self.name = name
self.groups = {}
self.origin = args.get( 'origin', OriginPosition.Upper_Left )
self.orientation = args.get( 'orientation', Orientation.Vertical )
self.position = args.get( 'position', ( 0.0, 1.0 ) )
self.buffer = args.get( 'buffer', ( 3, 3 ) )
self.windowSizeRange = [ 200, 1200 ]
self.minScale = 0.3
self.buttons = []
self.visible = False
self.configurableFunctions = collections.OrderedDict()
ButtonBarWidget.button_bars[ name ] = self
self.updateWindowSize()
示例2: _draw_line
def _draw_line(self):
line1 = vtk.vtkLineSource()
line1.SetPoint1(self.points[0])
line1.SetPoint2(self.points[1])
line2 = vtk.vtkLineSource()
line2.SetPoint1(self.points[1])
line2.SetPoint2(self.points[2])
arc = self.DrawArc()
line = vtk.vtkAppendPolyData()
line.AddInput(line1.GetOutput())
line.AddInput(line2.GetOutput())
line.AddInput(arc.GetOutput())
c = vtk.vtkCoordinate()
c.SetCoordinateSystemToWorld()
m = vtk.vtkPolyDataMapper2D()
m.SetInputConnection(line.GetOutputPort())
m.SetTransformCoordinate(c)
a = vtk.vtkActor2D()
a.SetMapper(m)
a.GetProperty().SetColor(self.colour)
self.line_actor = a
示例3: __build_cross_lines
def __build_cross_lines(self):
renderer = self.slice_data.overlay_renderer
cross = vtk.vtkCursor3D()
cross.AllOff()
cross.AxesOn()
self.cross = cross
c = vtk.vtkCoordinate()
c.SetCoordinateSystemToWorld()
cross_mapper = vtk.vtkPolyDataMapper()
cross_mapper.SetInput(cross.GetOutput())
#cross_mapper.SetTransformCoordinate(c)
p = vtk.vtkProperty()
p.SetColor(1, 0, 0)
cross_actor = vtk.vtkActor()
cross_actor.SetMapper(cross_mapper)
cross_actor.SetProperty(p)
cross_actor.VisibilityOff()
# Only the slices are pickable
cross_actor.PickableOff()
self.cross_actor = cross_actor
renderer.AddActor(cross_actor)
示例4: Coord3DtoDisplay
def Coord3DtoDisplay(self, x, y, z, canvas):
coord = vtk.vtkCoordinate()
coord.SetValue(x, y, z)
cx, cy = coord.GetComputedDisplayValue(canvas.evt_renderer)
return (cx, cy)
示例5: CreateViewportBox
def CreateViewportBox(colorfg,linewidth=3) :
pts = vtk.vtkPoints()
pts.SetNumberOfPoints(4)
pts.SetPoint(0, 0.0, 0.0, 0.0)
pts.SetPoint(1, 0.0, 1.0, 0.0)
pts.SetPoint(2, 1.0, 1.0, 0.0)
pts.SetPoint(3, 1.0, 0.0, 0.0)
lines = vtk.vtkCellArray()
lines.InsertNextCell(5)
lines.InsertCellPoint(0)
lines.InsertCellPoint(1)
lines.InsertCellPoint(2)
lines.InsertCellPoint(3)
lines.InsertCellPoint(0)
box = vtk.vtkPolyData()
box.SetPoints(pts)
box.SetLines(lines)
coords = vtk.vtkCoordinate()
coords.SetCoordinateSystemToNormalizedViewport()
boxmapper = vtk.vtkPolyDataMapper2D()
boxmapper.SetInputData(box)
boxmapper.SetTransformCoordinate(coords)
boxactor = vtk.vtkActor2D()
boxactor.SetMapper(boxmapper)
boxactor.GetProperty().SetLineWidth(linewidth)
boxactor.GetProperty().SetColor(colorfg)
return boxactor
示例6: draw_to_canvas
def draw_to_canvas(self, gc, canvas):
"""
Draws to an wx.GraphicsContext.
Parameters:
gc: is a wx.GraphicsContext
canvas: the canvas it's being drawn.
"""
coord = vtk.vtkCoordinate()
points = []
for p in self.points:
coord.SetValue(p)
cx, cy = coord.GetComputedDoubleDisplayValue(canvas.evt_renderer)
print cx, cy
# canvas.draw_circle((cx, cy), 2.5)
points.append((cx, cy))
if len(points) > 1:
for (p0, p1) in zip(points[:-1:], points[1::]):
r, g, b = self.colour
canvas.draw_line(p0, p1, colour=(r*255, g*255, b*255, 255))
if len(points) == 3:
txt = u"%.3f° / %.3f°" % (self.GetValue(), 360.0 - self.GetValue())
r, g, b = self.colour
canvas.draw_arc(points[1], points[0], points[2], line_colour=(r*255, g*255, b*255, 255))
canvas.draw_text_box(txt, (points[1][0], points[1][1]), txt_colour=MEASURE_TEXT_COLOUR, bg_colour=MEASURE_TEXTBOX_COLOUR)
示例7: draw_to_canvas
def draw_to_canvas(self, gc, canvas):
coord = vtk.vtkCoordinate()
coord.SetCoordinateSystemToNormalizedDisplay()
coord.SetValue(*self.position)
x, y = coord.GetComputedDisplayValue(canvas.evt_renderer)
font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
# font.SetWeight(wx.FONTWEIGHT_BOLD)
font.SetSymbolicSize(self.symbolic_syze)
canvas.draw_text(self.text, (x, y), font=font)
示例8: computeBounds
def computeBounds( renderer, normalized_display_position, size ):
upperRight = vtk.vtkCoordinate()
upperRight.SetCoordinateSystemToNormalizedDisplay()
upperRight.SetValue( normalized_display_position[0], normalized_display_position[1] )
bds = [0.0]*6
bds[0] = upperRight.GetComputedDisplayValue(renderer)[0] - size[0]
bds[1] = bds[0] + size[0]
bds[2] = upperRight.GetComputedDisplayValue(renderer)[1] - size[1]
bds[3] = bds[2] + size[1]
return bds
示例9: OnPaint
def OnPaint(self, evt, obj):
size = self.canvas_renderer.GetSize()
w, h = size
if self._size != size:
self._size = size
self._resize_canvas(w, h)
cam_modif_time = self.evt_renderer.GetActiveCamera().GetMTime()
if (not self.modified) and cam_modif_time == self.last_cam_modif_time:
return
self.last_cam_modif_time = cam_modif_time
self._array[:] = 0
coord = vtk.vtkCoordinate()
self.image.SetDataBuffer(self.rgb)
self.image.SetAlphaBuffer(self.alpha)
self.image.Clear()
gc = wx.GraphicsContext.Create(self.image)
if sys.platform != 'darwin':
gc.SetAntialiasMode(0)
self.gc = gc
font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
# font.SetWeight(wx.BOLD)
font = gc.CreateFont(font, (0, 0, 255))
gc.SetFont(font)
pen = wx.Pen(wx.Colour(255, 0, 0, 128), 2, wx.SOLID)
brush = wx.Brush(wx.Colour(0, 255, 0, 128))
gc.SetPen(pen)
gc.SetBrush(brush)
gc.Scale(1, -1)
self._ordered_draw_list = sorted(self._follow_draw_list(), key=lambda x: x[0])
for l, d in self._ordered_draw_list: #sorted(self.draw_list, key=lambda x: x.layer if hasattr(x, 'layer') else 0):
d.draw_to_canvas(gc, self)
gc.Destroy()
self.gc = None
if self._drawn:
self.bitmap = self.image.ConvertToBitmap()
self.bitmap.CopyToBuffer(self._array, wx.BitmapBufferFormat_RGBA)
self._cv_image.Modified()
self.modified = False
self._drawn = False
示例10: GetRepresentation
def GetRepresentation(self, x, y, z):
pc = self.camera.GetPosition() # camera position
pf = self.camera.GetFocalPoint() # focal position
pp = (x, y, z) # point where the user clicked
# Vector from camera position to user clicked point
vcp = [j-i for i,j in zip(pc, pp)]
# Vector from camera position to camera focal point
vcf = [j-i for i,j in zip(pc, pf)]
# the vector where the perpendicular vector will be given
n = [0,0,0]
# The cross, or vectorial product, give a vector perpendicular to vcp
# and vcf, in this case this vector will be in horizontal, this vector
# will be stored in the variable "n"
vtk.vtkMath.Cross(vcp, vcf, n)
# then normalize n to only indicate the direction of this vector
vtk.vtkMath.Normalize(n)
# then
p1 = [i*self.size + j for i,j in zip(n, pp)]
p2 = [i*-self.size + j for i,j in zip(n, pp)]
sh = vtk.vtkLineSource()
sh.SetPoint1(p1)
sh.SetPoint2(p2)
n = [0,0,0]
vcn = [j-i for i,j in zip(p1, pc)]
vtk.vtkMath.Cross(vcp, vcn, n)
vtk.vtkMath.Normalize(n)
p3 = [i*self.size + j for i,j in zip(n, pp)]
p4 = [i*-self.size +j for i,j in zip(n, pp)]
sv = vtk.vtkLineSource()
sv.SetPoint1(p3)
sv.SetPoint2(p4)
cruz = vtk.vtkAppendPolyData()
cruz.AddInput(sv.GetOutput())
cruz.AddInput(sh.GetOutput())
c = vtk.vtkCoordinate()
c.SetCoordinateSystemToWorld()
m = vtk.vtkPolyDataMapper2D()
m.SetInputConnection(cruz.GetOutputPort())
m.SetTransformCoordinate(c)
a = vtk.vtkActor2D()
a.SetMapper(m)
a.GetProperty().SetColor(self.colour)
return a
示例11: convert_world_to_display
def convert_world_to_display(self, viewpoint, x, y, z):
"""Converts world coordinates x, y, z to display coordinates.
Used in 2D affine alignment model to get shape feature coordinates
in image.
"""
self.vtkrenderer.SetActiveCamera(self.vtkcamera)
self._setup_camera(viewpoint)
vtkcoordinate = vtk.vtkCoordinate()
vtkcoordinate.SetCoordinateSystemToWorld()
vtkcoordinate.SetValue(x, y, z)
# x and y are flipped in render method.
y, x = vtkcoordinate.GetComputedDisplayValue(self.vtkrenderer)
return x, y
示例12: CreateAxisTickActor
def CreateAxisTickActor(xstart,ystart,xend,yend,colorfg) :
line=vtk.vtkLineSource()
line.SetPoint1(xstart,ystart,0.0)
line.SetPoint2(xend,yend,0.0)
coords = vtk.vtkCoordinate()
coords.SetCoordinateSystemToNormalizedViewport()
linemapper = vtk.vtkPolyDataMapper2D()
linemapper.SetInputConnection(line.GetOutputPort())
linemapper.SetTransformCoordinate(coords)
tick = vtk.vtkActor2D()
tick.SetMapper(linemapper)
tick.GetProperty().SetLineWidth(1)
tick.GetProperty().SetColor(colorfg)
tick.GetPositionCoordinate().SetCoordinateSystemToNormalizedViewport()
return tick
示例13: __init__
def __init__( self, name, interactor, **args ):
self.name = name
self.interactor = interactor
self.buttons = []
self.updateWindowSize()
self.visible = False
self.position = args.get( 'position', ( 0.0, 1.0 ) )
self.vtk_coord = vtk.vtkCoordinate()
self.vtk_coord.SetCoordinateSystemToNormalizedDisplay()
self.StateChangedSignal = SIGNAL('StateChanged')
self.process_mode = ProcessMode.Default
self.origin = args.get( 'origin', OriginPosition.Upper_Left )
self.orientation = args.get( 'orientation', Orientation.Vertical )
# print " ButtonBar[%s]: %s" % ( name, str(self.position) )
self.buffer = args.get( 'buffer', ( 3, 3 ) )
self.fullButtonWindowSize = 1300
self.magnification = args.get( 'mag', 1.0 )
示例14: set_options
def set_options(vtkchart, vtkrenderer, opt):
"""
A method for updating the legend options.
"""
legend = vtkchart.GetLegend()
if opt.isOptionValid('visible'):
vtkchart.SetShowLegend(opt['visible'])
else:
vtkchart.SetShowLegend(True)
if opt.isOptionValid('background'):
legend.GetBrush().SetColorF(opt['background'])
else:
legend.GetBrush().SetColorF(vtkrenderer.GetBackground())
legend.GetLabelProperties().SetColor(opt['label_color'])
legend.GetBrush().SetOpacityF(opt['opacity'])
if opt.isOptionValid('label_font_size'):
legend.SetLabelSize(opt['label_font_size'])
if opt.isOptionValid('point'):
pt = opt['point']
legend.SetVerticalAlignment(vtk.vtkChartLegend.CUSTOM)
legend.SetHorizontalAlignment(vtk.vtkChartLegend.CUSTOM)
coord = vtk.vtkCoordinate()
coord.SetCoordinateSystemToNormalizedViewport()
coord.SetValue(pt[0], pt[1], 0)
loc = coord.GetComputedDisplayValue(vtkrenderer)
legend.SetPoint(*loc)
else:
legend.SetVerticalAlignment(eval('vtk.vtkChartLegend.' +
opt['vertical_alignment'].upper()))
legend.SetHorizontalAlignment(eval('vtk.vtkChartLegend.' +
opt['horizontal_alignment'].upper()))
if opt.isOptionValid('border'):
legend.GetPen().SetOpacity(opt['border_opacity'])
legend.GetPen().SetColorF(opt['border_color'])
if opt.isOptionValid('border_width'):
legend.GetPen().SetWidth(opt['border_width'])
else:
legend.GetPen().SetOpacity(0)
示例15: startEvent
def startEvent(self):
logging.debug("In TextWidget::startEvent()")
if not self._started:
self._started = True
self.setText(self.text)
coord = vtk.vtkCoordinate()
coord.SetCoordinateSystemToNormalizedDisplay()
coord.SetValue(self.position[0], self.position[1])
pos = coord.GetComputedDisplayValue(self.scene.renderer)
x = self.position[0]/pos[0]
y = self.position[1]/pos[1]
pos = self.scene.interactor.GetEventPosition()
self.position[0] = pos[0]*x
self.position[1] = pos[1]*y
self.rep.GetPositionCoordinate().SetValue(self.position[0], self.position[1])
self.setText(self.text)
self.On()