• vtk类之vtkOutlineSource:创建边界盒状或者带弧度角度的poly data


    vtkOutlineSource 创建一个线框的形状盒子。通过SetBounds()方法可以设置边界盒的长高宽。通过SetCorners()方法可以设置边角的弧度形状。

    例子:

    #-*- coding: UTF-8 -*-
    #-------------------------------------------------------------------------------
    # Name:        outlineActorFactory 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 OutlineActorFactory(ActorFactory):
        def __init__(self):
            ActorFactory.__init__(self)
            self.__OutlineSource = vtkOutlineSource()
           
        def __del__(self):
            del self.__OutlineSource
        
        ## @brief 更新线的poly data
        def __UpdateData(self):
            self.__OutlineSource.SetBounds(-20, 20, -32.5, 32.5, -50, 50)
    #        self.__OutlineSource.SetBoxTypeToOriented() #设置box 的 起点为原点。旋转box 的时候,绕原点旋转。
    #        self.__OutlineSource.GenerateFacesOn() #设置生产面
    #        self.__OutlineSource.SetCorners ([2, 6, 7, 8, 9, 10, 15, 20,2, 6, 7, 8, 9, 10, 15, 20,2, 6, 7, 8, 9, 10, 15, 20])
    #        
        
        ## @brief 重写基类方法
        #  see    ActorFactory._MakeActors
        def _MakeActors(self): 
            self.__UpdateData()       
            polyDataMapper = vtkPolyDataMapper()
            polyDataMapper.SetInputConnection(self.__OutlineSource.GetOutputPort())
            actor = self._NewActor()
            actor.SetMapper(polyDataMapper)
            actor.GetProperty().SetColor((1, 0, 0.3))
            del polyDataMapper
            return [actor]
            
            

    运行结果:

    使用方法 GenerateFacesOn()方法,可以开启生产面

    效果:

    使用方法 SetBoxTypeToOriented()和SetCorners() 可以设置弧度。

  • 相关阅读:
    SEO优化---学会建立高转化率的网站关键词库
    从一个程序员的角度看——微信小应用
    当AngularJS POST方法碰上PHP
    angularJS(6)
    彻底解决显示Opencv中Mat图像到Mfc窗口问题
    数据结构与算法基础总结
    java类别问题
    java基础知识
    逻辑地址、线性地址、物理地址和虚拟地址的区别
    TCP协议中的三次握手和四次挥手(图解)
  • 原文地址:https://www.cnblogs.com/ankier/p/2808927.html
Copyright © 2020-2023  润新知