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

◆ project_pt_pt()

int project_pt_pt ( const POINT4D A,
const POINT4D B,
double  distance,
POINT4D R 
)

Azimuth is angle in radians from vertical axis.

Definition at line 2445 of file measures.c.

2446{
2447 /* Convert from azimuth to conventional slope */
2448 double len = distance2d_pt_pt((const POINT2D *)A, (const POINT2D *)B);
2449 double prop = distance / len;
2450 double dx = (B->x - A->x) * prop;
2451 double dy = (B->y - A->y) * prop;
2452 double dz = (B->z - A->z) * prop;
2453 double dm = (B->m - A->m) * prop;
2454 R->x = B->x + dx;
2455 R->y = B->y + dy;
2456 if (isfinite(dz)) R->z = B->z + dz;
2457 if (isfinite(dm)) R->m = B->m + dm;
2458 return LW_TRUE;
2459}
#define LW_TRUE
Return types for functions with status returns.
Definition liblwgeom.h:93
static double distance(double x1, double y1, double x2, double y2)
Definition lwtree.c:1032
double distance2d_pt_pt(const POINT2D *p1, const POINT2D *p2)
Definition measures.c:2344
double y
Definition liblwgeom.h:390
double x
Definition liblwgeom.h:390
double m
Definition liblwgeom.h:414
double x
Definition liblwgeom.h:414
double z
Definition liblwgeom.h:414
double y
Definition liblwgeom.h:414

References distance(), distance2d_pt_pt(), LW_TRUE, POINT4D::m, POINT4D::x, POINT4D::y, and POINT4D::z.

Referenced by lwline_extend(), and lwpoint_project_lwpoint().

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