PostGIS  2.1.10dev-r@@SVN_REVISION@@
 double vector_angle ( const POINT3D * v1, const POINT3D * v2 )

Angle between two unit vectors.

Definition at line 454 of file lwgeodetic.c.

References cross_product(), dot_product(), normalize(), pixval::x, and pixval::y.

Referenced by test_vector_angle().

455 {
456  POINT3D v3, normal;
457  double angle, x, y;
458
459  cross_product(v1, v2, &normal);
460  normalize(&normal);
461  cross_product(&normal, v1, &v3);
462
463  x = dot_product(v1, v2);
464  y = dot_product(v2, &v3);
465
466  angle = atan2(y, x);
467  return angle;
468 }
void normalize(POINT3D *p)
Normalize to a unit vector.
Definition: lwgeodetic.c:564
static double dot_product(const POINT3D *p1, const POINT3D *p2)
Convert cartesion coordinates on unit sphere to lon/lat coordinates static void cart2ll(const POINT3D...
Definition: lwgeodetic.c:397
tuple x
Definition: pixval.py:53
static void cross_product(const POINT3D *a, const POINT3D *b, POINT3D *n)
Calculate the cross product of two vectors.
Definition: lwgeodetic.c:405
tuple y
Definition: pixval.py:54

Here is the call graph for this function: Here is the caller graph for this function: 