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()
相关推荐
chushiyunen9 分钟前
python中的魔术方法(双下划线)
前端·javascript·python
深蓝轨迹17 分钟前
@Autowired与@Resource:Spring依赖注入注解核心差异剖析
java·python·spring·注解
人工智能AI技术22 分钟前
Python 3.14.3更新!内存优化与安全补丁实战应用
python
2401_8916558125 分钟前
此电脑网络位置异常的AD域排错指南的技术文章大纲
开发语言·python·算法
不要秃头的小孩36 分钟前
50. 随机数排序
数据结构·python·算法
qq_4176950544 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
1941s1 小时前
Google Agent Development Kit (ADK) 指南 第五章:工具集成与自定义
人工智能·python·langchain·agent·adk
故事和你911 小时前
sdut-python-实验四-python序列结构(21-27)
大数据·开发语言·数据结构·python·算法
chushiyunen1 小时前
pycharm注意力残差示例
ide·python·pycharm
2301_793804692 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python