PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ vector_angle()

double vector_angle ( const POINT3D v1,
const POINT3D v2 
)

Angle between two unit vectors.

Definition at line 505 of file lwgeodetic.c.

506{
507 POINT3D v3, normal;
508 double angle, x, y;
509
510 cross_product(v1, v2, &normal);
511 normalize(&normal);
512 cross_product(&normal, v1, &v3);
513
514 x = dot_product(v1, v2);
515 y = dot_product(v2, &v3);
516
517 angle = atan2(y, x);
518 return angle;
519}
void normalize(POINT3D *p)
Normalize to a unit vector.
Definition lwgeodetic.c:615
static void cross_product(const POINT3D *a, const POINT3D *b, POINT3D *n)
Calculate the cross product of two vectors.
Definition lwgeodetic.c:454
static double dot_product(const POINT3D *p1, const POINT3D *p2)
Convert cartesian coordinates on unit sphere to lon/lat coordinates static void cart2ll(const POINT3D...
Definition lwgeodetic.c:446

References cross_product(), dot_product(), and normalize().

Referenced by gbox_geocentric_get_gbox_cartesian(), and test_vector_angle().

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