CGAL: Матрица преобразования для вращения с учетом двух линий / векторов / направлений - PullRequest
2 голосов
/ 19 апреля 2009

Как мне сгенерировать матрицу преобразования для вращающихся точек / других на угол между двумя линиями / векторами / направлениями в CGAL?

2D это то, что мне нужно. 3D это то, что я люблю.

1 Ответ

1 голос
/ 19 апреля 2009

Согласно руководству у вас есть следующие инструменты для работы:

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> 0 и d! = 0.

Aff_transformation_2<Kernel> t.operator* ( s) составляет два аффинных преобразования.

Aff_transformation_2<Kernel> t.inverse () дает обратное преобразование.

С их помощью вы сможете вычислять матрицы, соответствующие двум направлениям, и использовать тождество в виде:

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

чтобы получить то, что вы хотите.

...