--------本专题保持持续更新中,喜欢的同学请收藏-------------
想要STL模型文件的同学请留言,免费送
当我显示一个飞机发动机的模型时,视角太远造成显示不清
解决方案如下:
# 获取当前的相机并放大视图
camera = renderer.GetActiveCamera()
camera.Zoom(1.5)
解决后的视图如下:
全部代码如下:
import os
import vtk
def main():
# 创建一个VTK渲染窗口和渲染器
renderer = vtk.vtkRenderer()
render_window = vtk.vtkRenderWindow()
render_window.AddRenderer(renderer)
render_window_interactor = vtk.vtkRenderWindowInteractor()
render_window_interactor.SetRenderWindow(render_window)
# 读取robot文件夹内所有STL文件
stl_files = [os.path.join('engine/files', f) for f in os.listdir('engine/files') if f.endswith('.stl')]
colors = [(random.random(), random.random(), random.random()) for _ in stl_files] # 生成随机颜色
for file, color in zip(stl_files, colors):
stl_reader = vtk.vtkSTLReader()
stl_reader.SetFileName(file)
stl_mapper = vtk.vtkPolyDataMapper()
stl_mapper.SetInputConnection(stl_reader.GetOutputPort())
stl_actor = vtk.vtkActor()
stl_actor.SetMapper(stl_mapper)
stl_actor.GetProperty().SetColor(color) # 设置颜色
renderer.AddActor(stl_actor)
# 添加一些基本的渲染设置
renderer.SetBackground(0.1, 0.2, 0.4) # 背景颜色
render_window.SetSize(800, 600)
render_window_interactor.AddObserver('KeyPressEvent', key_press_event)
# 获取当前的相机并放大视图
camera = renderer.GetActiveCamera()
camera.Zoom(1.5)
# 开始交互
render_window.Render()
render_window_interactor.Start()
if __name__ == "__main__":
import random
main()