vtkLineSource 通过两点(x, y, z) 来创建一条线的poly data。

基本方法:

  SetPoint1SetPoint2设置先的2个端点。

virtual void SetPoint1 (double, double, double)
virtual void SetPoint1 (double[3])
virtual double * GetPoint1 ()
virtual void GetPoint1 (double data[3])
 
 
virtual void SetPoint2 (double, double, double)
virtual void SetPoint2 (double[3])

例子:

#-*- coding: UTF-8 -*-
#-------------------------------------------------------------------------------
# Name:        lineActorFactory2 package
# Purpose:     通过两个点,创建一条直线
#
# Author:      ankier
#
# Created:     08-12-2012
# Copyright:   (c) ankier 2012
# Licence:     <your licence>
#-------------------------------------------------------------------------------

from ActorFactory import ActorFactory 
from vtk import *

## @brief 直线的actor factory
class LineActorFactory2(ActorFactory):
    def __init__(self):
        ActorFactory.__init__(self)
        self.__LineSource = vtkLineSource()
       
    def __del__(self):
        del self.__LineSource
    
    ## @brief 更新线的poly data
    def __UpdateData(self):
        self.__LineSource.SetPoint1(0, 0, 0)
        self.__LineSource.SetPoint2(100, 200, 300)
        self.__LineSource.SetResolution(10)
    
    ## @brief 重写基类方法
    #  see    ActorFactory._MakeActors
    def _MakeActors(self): 
        self.__UpdateData()       
        polyDataMapper = vtkPolyDataMapper()
        polyDataMapper.SetInputConnection(self.__LineSource.GetOutputPort())
        actor = self._NewActor()
        actor.SetMapper(polyDataMapper)
        actor.GetProperty().SetColor((1, 0, 0.3))
        del polyDataMapper
        return [actor]
        
        

运行效果图:

vtk类之vtkLineSource:用2点来创建线的poly data

 

相关文章:

  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2021-06-27
  • 2021-10-27
  • 2021-06-04
  • 2021-12-28
猜你喜欢
  • 2021-12-03
  • 2021-11-29
  • 2021-06-01
  • 2021-08-12
  • 2021-12-22
  • 2021-05-17
  • 2022-12-23
相关资源
相似解决方案