VTK学习笔记(二十二)某点投影到某个平面上

最近搞VTK平面旋转+平移,然后计算点投影到平面上的坐标,没人交流还是费劲啊,过程不说了

一直以为用vtkPlane中的ProjectPoint这个最好,不过由于我这里涉及到重新创建平面的过程,反倒不好。

cpp 复制代码
 关键示例代码如下:
   vtkSmartPointer<vtkPlane> plane = vtkSmartPointer<vtkPlane>::New();
   plane->SetNormal(normal);
   plane->SetOrigin(origin);
   ...
   plane->ProjectPoint(p, origin, normal, projected);

又搜索资料找到vtkTransform中的TransformDoubleVector。这个对于目前来说还比较好,确实知道它的旋转矩阵,可是调用它一定要注意,不要连续多次,否则只保存最后一次的计算结果。如果不提前把结果取出,后续就会有错误。

cpp 复制代码
    vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();
    ...
    double *newPoint = transform->TransformDoubleVector(oldPoint); //仅仅取出指针还不行,如果再次调用计算,这个指针指向的数据是不对的,要保存数据的其他内存了。
    
相关推荐
垆边人似月.39 分钟前
华为机考题:最小代价爬楼梯
c语言·c++
可涵不会debug1 小时前
C++ std::bind 实战教程:线程池、回调场景全覆盖
linux·开发语言·c++
垆边人似月.2 小时前
华为机考题:二叉树的最大路径和
c语言·c++
2601_962218612 小时前
深入理解C++中的thread_local线程局部变量的应用
开发语言·c++
无名猿2 小时前
C++ lambda 捕获列表详解:值捕获、引用捕获、初始化捕获与悬垂引用
c++·现代c++·语法基础·踩坑记录
lengxuenong3 小时前
枚举例题分析
c++·算法·青少年编程
繁华的地方不一定留下你的脚印3 小时前
C++线程如何安全停止与唤醒:std::jthread、stop_token与condition_variable
开发语言·c++
沫璃染墨4 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
shada4 小时前
CMake指定 MSVC 工具集与 Windows SDK
c++·windows
垆边人似月.4 小时前
华为机考题:矩阵中的最长递增路径
c语言·c++