#header-mark#
VTKJS 三维模型
PnVTK 组件可以在 Panel 应用程序中渲染 vtk.js 文件,使得可以加载和交互复杂的 3D 几何体。
底层实现为panel.pane.VTK,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/VTKJS.html
基本用法
构造 PnVTKJS 组件最简单的方法是给它一个 vtk.js 文件,它将序列化并嵌入到图表中。PnVTKJS 组件还支持 Bokeh 提供的常规尺寸选项,包括响应式尺寸模式。也可以通过替换 object 来更新模型。
相机控制
一旦显示了 VTKJS 组件,它将自动将相机状态与组件对象同步。相机参数仅在交互结束时更新。我们可以在相应的参数上读取相机状态:
这种技术也使得可以将两个或多个 VTKJS 组件的相机链接在一起:
还可以在 Python 中修改相机状态并触发更新:
API
属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| object | 可以是指向本地或远程的带有 .vtkjs 扩展名的文件的字符串 | str, object | None |
| axes | 在 3D 视图中构造的坐标轴的参数字典。必须至少包含 xticker、yticker 和 zticker | dict | None |
| camera | 反映 VTK 相机当前状态的字典 | dict | None |
| enable_keybindings | 激活/禁用键盘绑定的布尔值。绑定的键有:s(将所有 actor 表示设置为表面)、w(将所有 actor 表示设置为线框)、v(将所有 actor 表示设置为顶点)、r(居中 actor 并移动相机,使所有 actor 可见) | boolean | False |
| orientation_widget | 激活/禁用 3D 面板中的方向部件的布尔值 | boolean | False |
| interactive_orientation_widget | 如果为 True,则方向部件可点击并允许将场景旋转到正交投影之一 | boolean | False |
| sizing_mode | 尺寸调整模式 | str | 'fixed' |
| width | 宽度 | int, str | None |
| height | 高度 | int, str | None |
| min_width | 最小宽度 | int | None |
| min_height | 最小高度 | int | None |
| max_width | 最大宽度 | int | None |
| max_height | 最大高度 | int | None |
| margin | 外边距 | int, tuple | 5 |
| css_classes | CSS类名列表 | list | [] |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
方法
| 方法名 | 说明 | 参数 |
|---|---|---|
| export_scene | 导出场景并生成可以被官方 vtk-js 场景导入器加载的文件 | filename: str |
Controls
src/examples/panel_vuepy/panes/VTKJS