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

    运行效果:

  • 相关阅读:
    MySQL表的各种类型
    MySQL的慢查询使用与分析
    推荐一款Windows下的桌面倒数日软件
    C语言 复习指南
    C语言函数指针、回调函数
    VSCode环境配置 for C and C++
    JAVA编程基础&面试题
    MarkDown支持的十六进制颜色列表
    短路运算符、位运算总结
    Let's Encrypt的HTTPS证书在阿里云OSS内部署
  • 原文地址:https://www.cnblogs.com/ankier/p/2812319.html
Copyright © 2011-2022 走看看