#include <iostream>#include <iomanip>#include <string>#include "vgl_point_2d.h"#include <vgl/vgl_homg_point_2d.h>#include <vgl/vgl_line_2d.h>#include <vgl/vgl_homg_line_2d.h>Go to the source code of this file.
Macros | |
| #define | VGL_POINT_2D_INSTANTIATE(T) |
Functions | |
| template<class T > | |
| double | cross_ratio (vgl_point_2d< T >const &p1, vgl_point_2d< T >const &p2, vgl_point_2d< T >const &p3, vgl_point_2d< T >const &p4) |
| cross ratio of four collinear points. More... | |
| template<class Type > | |
| std::ostream & | operator<< (std::ostream &s, vgl_point_2d< Type > const &p) |
| Write "<vgl_point_2d x,y> " to stream. More... | |
| template<class Type > | |
| std::istream & | operator>> (std::istream &is, vgl_point_2d< Type > &p) |
| Read x y from stream. More... | |
| #define VGL_POINT_2D_INSTANTIATE | ( | T | ) |
Definition at line 131 of file vgl_point_2d.hxx.
| double cross_ratio | ( | vgl_point_2d< T >const & | p1, |
| vgl_point_2d< T >const & | p2, | ||
| vgl_point_2d< T >const & | p3, | ||
| vgl_point_2d< T >const & | p4 | ||
| ) |
cross ratio of four collinear points.
This number is projectively invariant, and it is the coordinate of p4 in the reference frame where p2 is the origin (coordinate 0), p3 is the unity (coordinate 1) and p1 is the point at infinity. This cross ratio is often denoted as ((p1, p2; p3, p4)) (which also equals ((p3, p4; p1, p2)) or ((p2, p1; p4, p3)) or ((p4, p3; p2, p1)) ) and is calculated as
p1 - p3 p2 - p3 (p1-p3)(p2-p4)
------- : -------- = --------------
p1 - p4 p2 - p4 (p1-p4)(p2-p3)If three of the given points coincide, the cross ratio is not defined.
In this implementation, a least-squares result is calculated when the points are not exactly collinear.
Definition at line 38 of file vgl_point_2d.hxx.
| std::ostream& operator<< | ( | std::ostream & | s, |
| vgl_point_2d< Type > const & | p | ||
| ) |
Write "<vgl_point_2d x,y> " to stream.
Write "<vgl_point_2d x,y>" to stream.
Definition at line 52 of file vgl_point_2d.hxx.
| std::istream& operator>> | ( | std::istream & | is, |
| vgl_point_2d< Type > & | p | ||
| ) |
Read x y from stream.
Read from stream, possibly with formatting.
Definition at line 125 of file vgl_point_2d.hxx.
1.8.15