我有两个网格(称为A和B),我正在使用open3d库在python中进行交互(很高兴使用import trimesh
或其他更好的东西)。网格A为曲线结构,网格B近似于更平坦的曲面
我需要旋转网格,使我感兴趣的曲面朝向摄影机。 为了识别我需要的曲面,我编写了一些函数,将网格转化为点云,并为网格A创建最适合的球体,为网格B创建最适合的平面。这些函数非常有效,可以很好地匹配对象
我需要旋转网格,并且已经被如何执行旋转所困扰
我拥有的输入数据:
对于网格A: 网格质心A坐标和其最佳拟合球体的坐标(+其半径)-我想旋转网格,使其垂直于上述数据描述的向量
对于网格B: 网格B坐标的质心和最佳拟合平面法线的向量-我想旋转网格,使其垂直于上述数据描述的向量
我不知道那个库,但也许您可以尝试在Matplotlib的Affine2D()类中旋转对象
具体来说,请尝试使用以下功能:
mtransforms.Affine2D().rotate()
首先,您必须导入它:
matplotlib.transforms as mtransforms
解决了! 创建了两个矢量作为numpy数组,即矢量1和矢量2,并找到了open3d命令以使网格居中,并在两个矢量之间应用旋转矩阵。我认为这是容易受到万向节锁,但我不能得到我的头周围四元数,它的工作足够好,为我的使用场景
相关问题 更多 >
编程相关推荐