RotationAroundLine 模型的旋转

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程------逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①模型的旋转

二:代码及注释

python 复制代码
import vtkmodules.vtkRenderingOpenGL2
import vtkmodules.vtkInteractionStyle
from vtkmodules.vtkFiltersSources import vtkArrowSource
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkCommonTransforms import vtkTransform
from vtkmodules.vtkFiltersGeneral import vtkTransformPolyDataFilter
from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, \
    vtkRenderer


def main():
    colors = vtkNamedColors()

    source = vtkArrowSource() # 原始方向(0,0,1)

    transform = vtkTransform()
    """
    RotateWXYZ  可自行定义所绕的轴以及绕的角度
    """
    transform.RotateWXYZ(45, 0, 0, 1)

    transformFilter = vtkTransformPolyDataFilter()
    transformFilter.SetInputConnection(source.GetOutputPort())
    transformFilter.SetTransform(transform)
    transformFilter.Update() # 旋转之后与X轴的夹角呈45°

    coneMapper1 = vtkPolyDataMapper()
    coneMapper1.SetInputConnection(source.GetOutputPort())

    actor1 = vtkActor()
    actor1.SetMapper(coneMapper1)

    coneMapper2 = vtkPolyDataMapper()
    coneMapper2.SetInputConnection(transformFilter.GetOutputPort())

    actor2 = vtkActor()
    actor2.SetMapper(coneMapper2)

    actor1.GetProperty().SetColor(colors.GetColor3d("LightCoral"))
    actor2.GetProperty().SetColor(colors.GetColor3d("PaleTurquoise"))

    render = vtkRenderer()
    render.AddActor(actor1)
    render.AddActor(actor2)
    render.SetBackground(colors.GetColor3d("SlateGray"))

    renWin = vtkRenderWindow()
    renWin.AddRenderer(render)
    renWin.SetSize(600, 480)
    renWin.SetWindowName("RotationAroundLine")

    iren = vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    iren.Initialize()
    renWin.Render()
    iren.Start()



if __name__ == '__main__':
    main()
相关推荐
科技苑2 小时前
Python简单网络爬虫教程
爬虫·python
玖玥拾4 小时前
Unity Shader 基础与图形学(一)
unity·图形渲染·图形学·shader
Patrick在香港5 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
YsyaaabB6 小时前
Python 数值分析
python
阿洛学长6 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
weixin199701080166 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
滚雪球~7 小时前
量化交易 防止Windows电脑自动更新并重启
python·量化
L@ncor8 小时前
第二章可能出现的问题
人工智能·python
y = xⁿ8 小时前
大模型基础概念
python
ctlover8 小时前
排序与查找算法详解
开发语言·python