Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
sbasis-geometric.h File Reference

two-dimensional geometric operators. More...

Go to the source code of this file.

Namespaces

namespace  Geom
 Various utility functions.
 

Functions

Piecewise< D2< SBasis > > Geom::cutAtRoots (Piecewise< D2< SBasis > > const &M, double tol=1e-4)
 
Piecewise< SBasisGeom::atan2 (D2< SBasis > const &vect, double tol=.01, unsigned order=3)
 
Piecewise< SBasisGeom::atan2 (Piecewise< D2< SBasis > >const &vect, double tol=.01, unsigned order=3)
 
D2< Piecewise< SBasis > > Geom::tan2 (SBasis const &angle, double tol=.01, unsigned order=3)
 
D2< Piecewise< SBasis > > Geom::tan2 (Piecewise< SBasis > const &angle, double tol=.01, unsigned order=3)
 
Piecewise< D2< SBasis > > Geom::unitVector (D2< SBasis > const &vect, double tol=.01, unsigned order=3)
 
Piecewise< D2< SBasis > > Geom::unitVector (Piecewise< D2< SBasis > > const &vect, double tol=.01, unsigned order=3)
 
Piecewise< SBasisGeom::curvature (D2< SBasis > const &M, double tol=.01)
 
Piecewise< SBasisGeom::curvature (Piecewise< D2< SBasis > > const &M, double tol=.01)
 
Piecewise< SBasisGeom::arcLengthSb (D2< SBasis > const &M, double tol=.01)
 
Piecewise< SBasisGeom::arcLengthSb (Piecewise< D2< SBasis > > const &M, double tol=.01)
 
double Geom::length (D2< SBasis > const &M, double tol=.01)
 
double Geom::length (Piecewise< D2< SBasis > > const &M, double tol=.01)
 
void Geom::length_integrating (D2< SBasis > const &B, double &result, double &abs_error, double tol)
 
Piecewise< D2< SBasis > > Geom::arc_length_parametrization (D2< SBasis > const &M, unsigned order=3, double tol=.01)
 
Piecewise< D2< SBasis > > Geom::arc_length_parametrization (Piecewise< D2< SBasis > > const &M, unsigned order=3, double tol=.01)
 
unsigned Geom::centroid (Piecewise< D2< SBasis > > const &p, Point &centroid, double &area)
 
std::vector< D2< SBasis > > Geom::cubics_fitting_curvature (Point const &M0, Point const &M1, Point const &dM0, Point const &dM1, double d2M0xdM0, double d2M1xdM1, int insist_on_speed_signs=1, double epsilon=1e-5)
 
std::vector< D2< SBasis > > Geom::cubics_fitting_curvature (Point const &M0, Point const &M1, Point const &dM0, Point const &dM1, Point const &d2M0, Point const &d2M1, int insist_on_speed_signs=1, double epsilon=1e-5)
 
std::vector< D2< SBasis > > Geom::cubics_with_prescribed_curvature (Point const &M0, Point const &M1, Point const &dM0, Point const &dM1, double k0, double k1, int insist_on_speed_signs=1, double error=1e-5)
 
std::vector< double > Geom::find_tangents (Point P, D2< SBasis > const &A)
 
std::vector< double > Geom::find_tangents_by_vector (Point V, D2< SBasis > const &A)
 
std::vector< double > Geom::find_normals (Point P, D2< SBasis > const &A)
 
std::vector< double > Geom::find_normals_by_vector (Point V, D2< SBasis > const &A)
 

Detailed Description

two-dimensional geometric operators.


These operators are built on a more 'polynomially robust' transformation to map a function that takes a [0,1] parameter to a 2d vector into a function that takes the same [0,1] parameter to a unit vector with the same direction.

Rather that using (X/sqrt(X))(t) which involves two unstable operations, sqrt and divide, this approach forms a curve directly from the various tangent directions at each end (angular jet). As a result, the final path has a convergence behaviour derived from that of the sin and cos series. – njh

Definition in file sbasis-geometric.h.