CGAL::rational_rotation_approximation

#include <CGAL/rational_rotation.h>

template <RingNumberType>
void
rational_rotation_approximation ( RingNumberType dirx,
RingNumberType diry,
RingNumberType & sin_num,
RingNumberType & cos_num,
RingNumberType & denom,
RingNumberType eps_num,
RingNumberType eps_den)
computes integers sin_num, cos_num and denom, such that sin_num/denom approximates the sine of direction (dirx,diry). The difference between the sine and the approximating rational is bounded by eps_num/eps_den.
Precondition: eps_num 0.

Implementation

The approximation is based on Farey sequences as described in the rational rotation method presented by Canny and Ressler at the 8th SoCG 1992. We use a slower version which needs no division operation in the approximation.

See Also

CGAL::Aff_transformation_2<Kernel>