CGAL:给定两条线/向量/方向的旋转变换矩阵

时间:2009-04-19 13:59:23

标签: geometry rotation cgal

如何通过CGAL中两条线/矢量/方向之间的角度生成旋转点/其他的变换矩阵?

2D是我需要的。 3D是我喜欢的。

1 个答案:

答案 0 :(得分:1)

根据the manual,您可以使用以下工具:

  

Aff_transformation_2<Kernel> t ( const Rotation, Direction_2<Kernel> d, Kernel::RT num, Kernel::RT den = RT(1))

     
    

近似于方向d指示的角度上的旋转,使得由d和近似旋转给出的旋转的正弦和余弦之间的差值每个最多为num / den。     前提条件:num / den&gt; 0和d!= 0。

  
     

Aff_transformation_2<Kernel> t.operator* ( s)组成两个仿射变换。

     

Aff_transformation_2<Kernel> t.inverse ()给出逆变换。

使用它们,您应该能够计算与两个方向相对应的矩阵,并使用以下行的标识:

Mat(d1-d2) === Mat(d1)*Inv(Mat(d2))

得到你想要的东西。