zoukankan      html  css  js  c++  java
  • 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() 可以设置弧度。

  • 相关阅读:
    安卓linux真机调试
    Java开发必装的IntelliJ IDEA插件
    在switch中的case语句中声明变量会被提前
    PostgresSQL 数组包含@>
    SQL 增加列、修改列、删除列
    ConcurrentHashMap 的实现原理
    Apache——DBUtils框架ResultSetHandler接口使用
    [转](不理想)Ubuntu下更改主显示器
    [问题记录]Java关于可变参数重载问题的测试
    使用openssl生成双向加密证书(转)
  • 原文地址:https://www.cnblogs.com/ankier/p/2808927.html
Copyright © 2011-2022 走看看