zoukankan      html  css  js  c++  java
  • vtk类之vtkSuperquadricSource:创建以原点为中心的多边形超二次曲面的poly data

    vtkSuperquadricSource 创建以原点为中心的多边形超二次曲面,可以设置尺寸。可以设置两个(φ)的纬度和经度(θ)方向的分辨率(多边形离散化)。浑圆度参数(纬度浑圆度和经度浑圆度)控制超二次曲面的形状。环形布尔值控制是否产生环形的超二次曲面。如果是的话,厚度参数控制的厚度的环形:0是最薄的环形,和1具有最小尺寸的孔。缩放尺度参数允许超二次曲面,在x,y,和z(在任何情况下,正确地生成法线向量)进行缩放。 尺寸参数控制的超二次曲面的size。

    原理是基于“刚性基于物理的超二次曲面”,AH巴尔,在“图形宝石III”,大卫柯克,编,科学出版社,1992年。

    基本方法:

      SetCenter()设置中心点

      SetThickness()厚度参数控制的厚度的环形:0是最薄的环形,和1具有最小尺寸的孔

      ToroidalOn()开启环形

      SetPhiRoundness(),SetThetaRoundness设置经纬度的环形度

      SetScale()设置在x,y,z方向的超二次曲面的拉伸系数。

    例子:

    #-*- coding: UTF-8 -*-
    #-------------------------------------------------------------------------------
    # Name:        模块2
    # Purpose:
    #
    # Author:      ankier
    #
    # Created:     12-12-2012
    # Copyright:   (c) Ankier 2012
    # Licence:     <your licence>
    #-------------------------------------------------------------------------------
    
    from ActorFactory import ActorFactory
    
    from vtk import *
    ## @detal 生产超二次曲面
    class SuperquadricActorFactory(ActorFactory):
        def __init__(self):
            ActorFactory.__init__(self)        
            self.__SuperquadricSource = vtkSuperquadricSource()        
            
        def _MakeActors(self):
            self.__SuperquadricSource.SetCenter(0, 0, 0)        
            self.__SuperquadricSource.SetThickness(0.8)
            self.__SuperquadricSource.SetSize(20)
            self.__SuperquadricSource.ToroidalOn()
            self.__SuperquadricSource.SetPhiRoundness(10)
            self.__SuperquadricSource.SetThetaRoundness(1)
            self.__SuperquadricSource.SetScale(1 ,0.5, 1)
            
            polyDataMapper = vtkPolyDataMapper()
            polyDataMapper.SetInput(self.__SuperquadricSource.GetOutput())
            
            actor = self._NewActor()
            actor.SetMapper(polyDataMapper)
            actor.GetProperty().SetColor((1.0, 0.7, 0.2))
            
            return [actor]
        
        def __del__(self):
            del self.__SuperquadricSource

    运行效果:

  • 相关阅读:
    PHP应用目录结构设计
    php 项目性能优化
    Zend Framework的PHP编码规范【1】
    php 如何做在线人数统计
    linux 文件权限
    总结:常用的通用数据处理指令
    全排列(含递归和非递归的解法)
    局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
    C++中引用详解
    Pascal三角形
  • 原文地址:https://www.cnblogs.com/ankier/p/2812319.html
Copyright © 2011-2022 走看看