需要支持从鼠标使用 PCL、VTK、C++ 作为后端的 3d 立方体拖动和旋转

问题描述

对于我当前在 C++ -STD=11 中的实现,我需要一个 3d 立方体,我正在使用可视化工具上的以下 PCL 命令绘制该立方体。

PointCloudViewer.addCube(translation_vector,rotation_vector,width,height,depth,cube_id);

此外,我需要使用鼠标拖动和调整立方体大小等功能,其示例显示在 GIF 中。

使用鼠标 GIF 进行立方体拖动、旋转和调整大小

我目前使用的技术版本

  • C++:-std=11
  • PCL:1.9.0
  • VTK:8.1.2
  • Windows 10

任何人都可以建议如何使用上述库实现此类功能

解决方法

我们可以通过为用户变换设置一个新矩阵来旋转立方体。相关接口为 vtkTransform::RotateWXYZ,为其设置旋转角度和旋转中心。相关帖子:To Rotate A Cone When The Rotating Center Is Not Its Center 您的拖动操作实际上是在缩放立方体。通过 vtkTransform::Scale 改变矩阵。