Geometry Class Reference (PyVrGeom)
Helper coordinate geometry routines More...
Members
• | Wind (MinX, MinY, MaxX, MaxY, TestX, TestY) |
• | InterXY (x1, y1, z1, x2, y2, z2, z3) |
• | InterZ3 (x1, y1, z1, x2, y2, z2, x3, y3, z3, x, y) |
• | OfsInt (LineX1, LineY1, LineX2, LineY2, PointX, PointY) |
• | PntToLine1 (LineX1, LineY1, LineX2, LineY2, PointX, PointY) |
• | PntToLine2 (LineX1, LineY1, LineZ1, LineX2, LineY2, LineZ2, PointX, PointY, PointZ) |
• | PntToLine3d (LineX1, LineY1, LineZ1, LineX2, LineY2, LineZ2, xp, yp, zp) |
• | CanLinesCross (MinX1, MinY1, MaxX1, MaxY1, MinX2, MinY2, MaxX2, MaxY2) |
• | OfsLine (Offset, OrgX1, OrgY1, OrgX2, OrgY2) |
• | DoLinesIntersect (Line1X1, Line1Y1, Line1X2, Line1Y2, Line2X1, Line2Y1, Line2X2, Line2Y2) |
• | LineLineInt (Line1X1, Line1Y1, Line1X2, Line1Y2, Line2X1, Line2Y1, Line2X2, Line2Y2) |
• | AngleB (x1, y1, xc, yc, x2, y2) |
• | FmtAzi (Azi, Accur, Direction) |
• | FmtBear (Bearing, Quadrant, Accur, FmtOpt) |
• | DoesMbrOverlap (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY) |
• | GetOverlapArea (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY) |
• | GetOverlapAreaD (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY) |
Description
The Python VrOne Geometry Class contains useful coordinate geometry routines. Calls to this class use the same coordinate geometry routines used by VrOne. This class is provided to reduce user development time by using time-tested VrOne C++ routines. Unless otherwise specified, routines expect double precision numbers.
Member Function Documentation
AziConv (Angle)
Converts an angle between clockwise from North and counterclockwise from East.
AziNorth (x1, y1, x2, y2)
Computes North Azimuth from 2 coordinate positions.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Azimuth clockwise from North in radians.
|
AziSouth (x1, y1, x2, y2)
Computes South Azimuth from 2 coordinate positions.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Azimuth clockwise from South in radians.
|
AziEast (x1, y1, x2, y2)
Computes East Azimuth from 2 coordinate positions. This angle is normally used for text rotations.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Azimuth counterclockwise from East in radians.
|
DeltaAng (Azi1, Azi2)
Returns the delta angle between two azimuths. Always returns the acute angle.
Azi1
|
Azimuth 1 to compare (in radians)
|
Azi2
|
Azimuth 2 to compare (in radians)
|
returns
|
(ret)
|
|
ret
|
Delta angle.
Example (in degrees): Azi1 = 350 Azi2 = 10 returns 20
|
Dist (x1, y1, x2, y2)
Computes the 2D distance between two points.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Distance.
|
ZenithAng (x1, y1, z1, x2, y2, z2)
Computes zenith angle from two 3D points.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
z1
|
Z coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
z2
|
Z coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Zenith angle (radians)
|
IsShorter (x1, y1, x2, y2, x3, y3, x4, y4)
Determines if line1 is shorter than line2.
x1
|
X coordinate of line 1 point 1.
|
y1
|
Y coordinate of line 1 point 1.
|
x2
|
X coordinate of line 1 point 2.
|
y2
|
Y coordinate of line 1 point 2.
|
x3
|
X coordinate of line 2 point 1.
|
y3
|
Y coordinate of line 2 point 1.
|
x4
|
X coordinate of line 2 point 2.
|
y4
|
Y coordinate of line 2 point 2.
|
returns
|
(ret)
|
|
ret
|
0=Line1 is shorter than Line2, 1=Line1 is longer than or equal to Line2
|
SlopeDist (x1, y1, z1, x2, y2, z2)
Computes slope distance between two 3D points.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
z1
|
Z coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
z2
|
Z coordinate of point 2.
|
returns
|
(ret)
|
|
ret
|
Slope distance.
|
Wind (MinX, MinY, MaxX, MaxY, TestX, TestY)
Returns the relationship of a point within a window.
| |
9 | 1 | 5
| |
----------------------- < MaxY
|///////|
8 |///0///| 4
|///////|
----------------------- < MinY
| |
10 | 2 | 6
| |
^ ^
MinX MaxX
MinX
|
Minimum X coordinate for bounding window.
|
MinY
|
Minimum Y coordinate for bounding window.
|
MaxX
|
Maximum X coordinate for bounding window.
|
MaxY
|
Maximum Y coordinate for bounding window.
|
TestX
|
X coordinate of test point.
|
TestY
|
Y coordinate of test point.
|
InterY2D (X1, Y1, X2, Y2, X3, )
Interpolates the unknown Y of three points.
X1
|
X coordinate of point 1.
|
Y1
|
Y coordinate of point 1.
|
X2
|
X coordinate of point 2.
|
Y2
|
Y coordinate of point 2.
|
X3
|
X coordinate of point 3.
|
|
|
returns
|
(UnknownY)
|
|
UnknownY
|
|
InterX2D (Y3, X1, Y1, X2, Y2, )
Interpolates the unknown X of three points.
Y3
|
Y coordinate of point 3.
|
X1
|
X coordinate of point 1.
|
Y1
|
Y coordinate of point 1.
|
X2
|
X coordinate of point 1.
|
Y2
|
Y coordinate of point 2.
|
|
|
returns
|
(UnknownX)
|
|
UnknownX
|
|
InterXY (x1, y1, z1, x2, y2, z2, z3)
Interpolates the XY position along a line based on the elevation
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
z1
|
Z coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
z2
|
Z coordinate of point 2.
|
z3
|
Known elevation
|
returns
|
(x3, y3)
|
|
x3
|
Return X.
|
|
y3
|
Return Y.
|
InterElev (x1, y1, z1, x2, y2, z2, x3, y3)
Interpolates the unknown elevation of three points.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
z1
|
Z coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
z2
|
Z coordinate of point 2.
|
x3
|
X coordinate of point 3.
|
y3
|
Y coordinate of point 3.
|
returns
|
(z3)
|
|
z3
|
Unknown elevation of third point. If there is no distance between points one and two then Z3 returns with the elevation of Z1.
|
InterZ3 (x1, y1, z1, x2, y2, z2, x3, y3, z3, x, y)
Interpolates a Z from a 3D surface defined by a triangle.
x1
|
X coordinate of point 1 on triangle.
|
y1
|
Y coordinate of point 1 on triangle.
|
z1
|
Z coordinate of point 1 on triangle.
|
x2
|
X coordinate of point 2 on triangle.
|
y2
|
Y coordinate of point 2 on triangle.
|
z2
|
Z coordinate of point 2 on triangle.
|
x3
|
X coordinate of point 3 on triangle.
|
y3
|
Y coordinate of point 3 on triangle.
|
z3
|
Z coordinate of point 3 on triangle.
|
x
|
X coordinate of point to interpolate Z.
|
y
|
Y coordinate of point to interpolate Z.
|
returns
|
(z)
|
|
z
|
Return elevation.
|
RotPoint (BaseX, BaseY, x, y, Rot)
Rotates a point about a base point.
BaseX
|
X coordinate of base point.
|
BaseY
|
Y coordinate of base point.
|
x
|
X coordinate of point to be rotated.
|
y
|
X coordinate of point to be rotated.
|
Rot
|
Rotation angle clockwise (in radians).
|
returns
|
(x, y)
|
|
x
|
Return point x.
|
|
y
|
Return point y.
|
OfsInt (LineX1, LineY1, LineX2, LineY2, PointX, PointY)
Computes the offset and distance from a point to a line.
LineX1
|
X coordinate of point 1 of the line.
|
LineY1
|
Y coordinate of point 1 of the line.
|
LineX2
|
X coordinate of point 2 of the line.
|
LineY2
|
Y coordinate of point 2 of the line.
|
PointX
|
X coordinate of point.
|
PointY
|
Y coordinate of point
|
returns
|
(Offset, Distance)
|
|
Offset
|
Resulting offset with the following conditions:
Positive - Point is to the right of the line.
Negative - Point is to the left of the line.
|
|
Distance
|
Resulting distance from point to line.
|
PntToLine1 (LineX1, LineY1, LineX2, LineY2, PointX, PointY)
Snaps a point to a line 2D.
LineX1
|
X coordinate of point 1 of the line.
|
LineY1
|
Y coordinate of point 1 of the line.
|
LineX2
|
X coordinate of point 2 of the line.
|
LineY2
|
Y coordinate of point 2 of the line.
|
PointX
|
X coordinate of point to snap.
|
PointY
|
Y coordinate of point to snap.
|
returns
|
(ret, xr, yr, Dist)
|
|
ret
|
0=Point falls between line endpoints
1=Point falls below the line * x---------->
2=Point falls above the line x---------> *
|
|
xr
|
Point x snapped to line.
|
|
yr
|
Point y snapped to line.
|
|
Dist
|
Return distance (optional) with the following conditions:
Positive - Point is to the right of the line.
Negative - Point is to the left of the line.
|
PntToLine2 (LineX1, LineY1, LineZ1, LineX2, LineY2, LineZ2, PointX, PointY, PointZ)
Snaps a point to a line 2D but interpolates a Z.
LineX1
|
X coordinate of point 1 of the line.
|
LineY1
|
Y coordinate of point 1 of the line.
|
LineZ1
|
Z coordinate of point 1 of the line.
|
LineX2
|
X coordinate of point 2 of the line.
|
LineY2
|
Y coordinate of point 2 of the line.
|
LineZ2
|
Z coordinate of point 2 of the line.
|
PointX
|
X coordinate of point to snap.
|
PointY
|
Y coordinate of point to snap.
|
PointZ
|
Z coordinate of point to snap.
|
returns
|
(ret, xr, yr, zr, Dist)
|
|
ret
|
0=Point falls between line endpoints
1=Point falls below the line * x---------->
2=Point falls above the line x---------> *
|
|
xr
|
Point x snapped to line.
|
|
yr
|
Point y snapped to line.
|
|
zr
|
Interpolated z on line.
|
|
Dist
|
Return distance (optional) with the following conditions:
Positive - Point is to the right of the line.
Negative - Point is to the left of the line.
|
PntToLine3d (LineX1, LineY1, LineZ1, LineX2, LineY2, LineZ2, xp, yp, zp)
Snaps a 3D point to a 3D line using doubles. This is a true 3D computation.
LineX1
|
X coordinate of point 1 of the line.
|
LineY1
|
Y coordinate of point 1 of the line.
|
LineZ1
|
Z coordinate of point 1 of the line.
|
LineX2
|
X coordinate of point 2 of the line.
|
LineY2
|
Y coordinate of point 2 of the line.
|
LineZ2
|
Z coordinate of point 2 of the line.
|
xp
|
X coordinate of point to snap.
|
yp
|
Y coordinate of point to snap.
|
zp
|
Z coordinate of point to snap to line.
|
returns
|
(ret, xr, yr, zr, Dist)
|
|
ret
|
0=Point falls between line endpoints.
1=Point falls below the line. * x---------->
2=Point falls above the line. x---------> *
|
|
xr
|
Point x snapped to line.
|
|
yr
|
Point y snapped to line.
|
|
zr
|
Point z snapped to line (interpolated).
|
|
Dist
|
Return distance from xp,yp,zp to line intersection (optional).
|
CanLinesCross (MinX1, MinY1, MaxX1, MaxY1, MinX2, MinY2, MaxX2, MaxY2)
Determines if it is possible for two lines to cross by checking their MBRs (minimum bounding rectangles).
MinX1
|
Minimum X coordinate of MBR 1.
|
MinY1
|
Minimum Y coordinate of MBR 1.
|
MaxX1
|
Maximum X coordinate of MBR 1.
|
MaxY1
|
Maximum Y coordinate of MBR 1.
|
MinX2
|
Minimum X coordinate of MBR 2.
|
MinY2
|
Minimum Y coordinate of MBR 2.
|
MaxX2
|
Maximum X coordinate of MBR 2.
|
MaxY2
|
Maximum Y coordinate of MBR 2.
|
returns
|
(ret)
|
|
ret
|
TRUE= Lines could cross.
FALSE= Lines do not cross.
|
IsPointOnLine (LineX1, LineY1, LineX2, LineY2, PointX, PointY)
Determines if a point lies on a line.
LineX1
|
X coordinate of point 1 of the line.
|
LineY1
|
Y coordinate of point 1 of the line.
|
LineX2
|
X coordinate of point 2 of the line.
|
LineY2
|
Y coordinate of point 2 of the line.
|
PointX
|
X coordinate of test point.
|
PointY
|
Y coordinate of test point.
|
returns
|
(ret)
|
|
ret
|
0= Point is not on line.
1= Point is on line and not between line endpoints.
2= Point is on line between line endpoints.
3= Point is the same as one of the endpoints.
|
IsLineOnLine (x1, y1, x2, y2, x3, y3, x4, y4)
Determines if line2 lies on line1.
I.e.
x3y3 x4y4
*-----*=-=-=-=-=-=-=-=-=*------* = TRUE
x1y1 x2y2
x3y3 x4y4
*-------------*=-=-=-=-=-=-=-=-=* = TRUE
x1y1 x2y2
x3y3 x4y4
*-------------*=-=-=-=-=-=-*====* = FALSE
x1y1 x2y2
x3y3 x4y4
*==================*
*--------------------------------* = FALSE
x1y1 x2y2
x1
|
X coordinate of point one of line 1.
|
y1
|
Y coordinate of point one of line 1.
|
x2
|
X coordinate of point two of line 1.
|
y2
|
Y coordinate of point two of line 1.
|
x3
|
X coordinate of point one of line 2.
|
y3
|
Y coordinate of point one of line 2.
|
x4
|
X coordinate of point two of line 2.
|
y4
|
Y coordinate of point two of line 2.
|
returns
|
(ret)
|
|
ret
|
0 - Lines do not lie on top of each other. 1 - Lines lie on top of each other.
|
OfsLine (Offset, OrgX1, OrgY1, OrgX2, OrgY2)
Offsets a two point line.
Offset
|
Distance to offset new line from original.
Negative= Offset to left.
Positive= Offset to right.
|
OrgX1
|
X coordinate of point 1 of original line to be offset.
|
OrgY1
|
Y coordinate of point 1 of original line to be offset.
|
OrgX2
|
X coordinate of point 2 of original line to be offset.
|
OrgY2
|
Y coordinate of point 2 of original line to be offset.
|
returns
|
(NewX1, NewY1, NewX2, NewY2)
|
|
NewX1
|
X coordinate of point 1 of new line.
|
|
NewY1
|
Y coordinate of point 1 of new line.
|
|
NewX2
|
X coordinate of point 2 of new line.
|
|
NewY2
|
Y coordinate of point 2 of new line.
|
DoLinesIntersect (Line1X1, Line1Y1, Line1X2, Line1Y2, Line2X1, Line2Y1, Line2X2, Line2Y2)
Determines if lines intersect. Use LineLineInt to determine point of intersection.
Line1X1
|
X coordinate of point 1 of line 1.
|
Line1Y1
|
Y coordinate of point 1 of line 1.
|
Line1X2
|
X coordinate of point 2 of line 1.
|
Line1Y2
|
Y coordinate of point 2 of line 1.
|
Line2X1
|
X coordinate of point 1 of line 2.
|
Line2Y1
|
Y coordinate of point 1 of line 2.
|
Line2X2
|
X coordinate of point 2 of line 2.
|
Line2Y2
|
Y coordinate of point 2 of line 2.
|
returns
|
(ret)
|
|
ret
|
TRUE=Lines intersect.
FALSE=Lines don't intersect.
|
CanLineCrossMbr (x1, y1, x2, y2, MinX, MinY, MaxX, MaxY)
Determines if a line segment can possibly cross an MBR area. Integer based.
x1
|
X coordinate of point 1 on line segment.
|
y1
|
Y coordinate of point 1 on line segment.
|
x2
|
X coordinate of point 1 on line segment.
|
y2
|
Y coordinate of point 1 on line segment.
|
MinX
|
Minimum X coordinate of MBR.
|
MinY
|
Minimum Y coordinate of MBR.
|
MaxX
|
Maximum X coordinate of MBR.
|
MaxY
|
Maximum Y coordinate of MBR.
|
LineLineInt (Line1X1, Line1Y1, Line1X2, Line1Y2, Line2X1, Line2Y1, Line2X2, Line2Y2)
Determines if lines intersect.
Line1X1
|
X coordinate of point 1 on Line 1.
|
Line1Y1
|
Y coordinate of point 1 on Line 1.
|
Line1X2
|
X coordinate of point 2 on Line 1.
|
Line1Y2
|
Y coordinate of point 2 on Line 1.
|
Line2X1
|
X coordinate of point 1 on Line 2.
|
Line2Y1
|
Y coordinate of point 1 on Line 2.
|
Line2X2
|
X coordinate of point 2 on Line 2.
|
Line2Y2
|
Y coordinate of point 2 on Line 2.
|
returns
|
(IntX, IntY, IntFlag)
|
|
IntX
|
X coordinate of intersection point of line1 and line2.
|
|
IntY
|
Y coordinate of intersection point of line1 and line2.
|
|
IntFlag
|
A A A
-------> -------> ------->
| | |
| B | B | B
| | |
V V V
12 4 6
| A | A |
| -------> ---+---> ------->| B
| | |
V V V
8 0 2
| | |
| B | B | B
| | |
V A V A V
-------> -------> ------->
9 1 3
A A
-------> ------->
B AB
-------> ----->-> . B
15 15 15
|
BearBearInt (x1, y1, Azi1, x2, y2, Azi2)
Computes bearing-bearing intersection.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
Azi1
|
Azimuth from point 1 in radians from North.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
Azi2
|
Azimuth from point 2 in radians from North.
|
returns
|
(IntX, IntY, Stus)
|
|
IntX
|
Intersection point x.
|
|
IntY
|
Intersection point y.
|
|
Stus
|
Status:
0=Intersection computed.
1= Lines are parallel and no solution computed.
2= Point 1 and point 2 are the same.
|
DistDistInt (x1, y1, dist1, x2, y2, dist2)
Computes distance-distance intersection.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
dist1
|
Distance 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
dist2
|
Distance 2.
|
returns
|
(ret, IntX, IntY)
|
|
ret
|
0= Intersection computed.
1= Could not compute intersection. Points 1 and 2 are probably too far apart. Computes the solution clockwise direction from point 1 to point 2. To compute the other solution, call to routine with the points and distances reversed.
|
|
IntX
|
X coordinate of intersection point.
|
|
IntY
|
Y coordinate of intersection point.
|
BearDistInt (x1, y1, Azi1, x2, y2, Dist2)
Computes bearing-distance intersection. To compute the other solution call with reversed azimuth.
x1
|
X coordinate of starting point of line.
|
y1
|
Y coordinate of starting point of line
|
Azi1
|
Azimuth of line (Decimal radians from North).
|
x2
|
X coordinate of point to test distance intersection.
|
y2
|
Y coordinate of point to test distance intersection.
|
Dist2
|
Distance from (x2, y2)
|
returns
|
(ret, IntX, IntY)
|
|
ret
|
0= Computation successful.
1= no intersection possible.
|
|
IntX
|
Intersection point X (if possible).
|
|
IntY
|
Intersection point Y (if possible).
|
Circ3Pt (x1, y1, x2, y2, x3, y3)
Computes the center of a circle defined by 3 points along edge.
x1
|
X coordinate of point 1 on arc.
|
y1
|
Y coordinate of point 1 on arc.
|
x2
|
X coordinate of point 2 on arc.
|
y2
|
Y coordinate of point 2 on arc.
|
x3
|
X coordinate of point 3 on arc.
|
y3
|
Y coordinate of point 3 on arc.
|
returns
|
(ret, CenX, CenY, Rad)
|
|
ret
|
0= Computation successful
-1=Error, do not use results.
|
|
CenX
|
Return center point of circle X.
|
|
CenY
|
Return center point of circle Y.
|
|
Rad
|
Return radius.
|
AngleIncr (Radius, Scale)
Returns the angle increment for drawing a smooth circular arc.
Radius
|
Radius of circle or arc in user units.
|
Scale
|
Draw scale in ratio form (1:n).
To decrease (increase the number of points on the arc) the increment,
make 24000x larger.
___________________________
/ radius * sqrt(2) * 24000
/ ------------------------
\/ SCALE
|
returns
|
(ret)
|
|
ret
|
Angle increment for drawing a smooth circular arc.
|
AngleB (x1, y1, xc, yc, x2, y2)
Computes angle B of a triangle from three coordinate positions.
x1
|
X coordinate of point 1 on arc.
|
y1
|
Y coordinate of point 1 on arc.
|
xc
|
X coordinate of center point at angle B.
|
yc
|
Y coordinate of center point at angle B.
|
x2
|
X coordinate of point 2 on arc.
|
y2
|
Y coordinate of point 2 on arc.
|
returns
|
(ret)
|
|
ret
|
Angle n radians (0-PI).
|
AngleDeflect (x1, y1, x2, y2, x3, y3)
Computes the deflection angle from three coordinate positions.
x1
|
X coordinate of point 1.
|
y1
|
Y coordinate of point 1.
|
x2
|
X coordinate of point 2.
|
y2
|
Y coordinate of point 2.
|
x3
|
X coordinate of point 3.
|
y3
|
Y coordinate of point 3.
|
returns
|
(ret)
|
|
ret
|
Angle n radians (0-PI).
|
AziToBear (Azi)
Converts an azimuth to a bearing and quadrant code.
Azi
|
Azimuth to convert (in decimal radians from the North)
if azi is not in the range of 0-pi radians (0-360 degrees) it will be
forced into range.
NOTE : Conversion of angles from h.ms degrees <-> decimal radians.
azi := dec_deg(azi) / conv; hms degrees -> dec radians
azi := hms (azi*conv); dec radians -> hms degrees
|
returns
|
(Bear, Quadrant)
|
|
Bear
|
Return bearing (decimal radians)
|
|
Quadrant
|
Return quadrant code (1-4). If azi is not in the range of 0-pi radians (0-360 degrees) it will be forced into range.
|
BearToAzi (Bear, Quad)
Converts a bearing to an azimuth.
Bear
|
Bearing in decimal radians.
|
Quad
|
Quadrant code (1-4).
|
returns
|
(Azi)
|
|
Azi
|
Return azimuth in decimal radians from the north. If quad is out of range of 1-4 or if bear is out of range 0-1.5707963271 radians (0-90 degrees), azi returns 0.0.
|
FmtAzi (Azi, Accur, Direction)
Formats an azimuth for display in the form ddd mm ss.s
Azi
|
Azimuth to be formatted (radians from the North)
|
Accur
|
Number of decimal places for seconds
|
Direction
|
0 = Return azimuth from North. 1 = Return azimuth from South.
|
returns
|
(AziStrg)
|
|
AziStrg
|
Return string
|
ParseDms (Dms)
Parses angle expressed in "degrees minutes seconds".
Dms
|
Angle in the form of ddd.mmsec
|
returns
|
(Deg, Min, Sec)
|
|
Deg
|
Return degress
|
|
Min
|
Return minutes
|
|
Sec
|
Return seconds
|
FmtBear (Bearing, Quadrant, Accur, FmtOpt)
Formats a bearing in the form of q hh-mm-ss.tt q
Bearing
|
Bearing in decimal radians.
|
Quadrant
|
Quadrant code (1-4).
|
Accur
|
Decimal accuracy of seconds.
|
FmtOpt
|
Bearing format option.
0 - N dd-mm-ss E
1 - N dd\mm'ss"E
If Bearing is out of the range of 0-pi/2 radians (0-90 degrees)
then ? **-**-** ? is returned.
If quad is out of the range of 1-4 then and Bearing is in range then
? nn-nn-nn ? is returned.
|
returns
|
(BearStrg)
|
|
BearStrg
|
Return bearing string.
|
DoesMbrOverlap (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY)
Determines if there is overlap between a source and destination rectangle. Integer based.
DstStartX
|
Minimum X of destination rectangle.
|
DstStartY
|
Minimum Y of destination rectangle.
|
DstEndX
|
Maximum X of destination rectangle.
|
DstEndY
|
Maximum Y of destination rectangle.
|
SrcStartX
|
Minimum X of source rectangle.
|
SrcStartY
|
Minimum Y of source rectangle.
|
SrcEndX
|
Maximum X of source rectangle.
|
SrcEndY
|
Maximum Y of source rectangle.
|
returns
|
(ret)
|
|
ret
|
1 = Areas overlap.
0 = Areas don't overlap.
|
GetOverlapArea (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY)
Finds the overlap area of the source rectangle to the destination rectangle. Integer based.
DstStartX
|
Minimum X of destination rectangle.
|
DstStartY
|
Minimum Y of destination rectangle.
|
DstEndX
|
Maximum X of destination rectangle.
|
DstEndY
|
Maximum Y of destination rectangle.
|
SrcStartX
|
Minimum X of source rectangle.
|
SrcStartY
|
Minimum Y of source rectangle.
|
SrcEndX
|
Maximum X of source rectangle.
|
SrcEndY
|
Maximum Y of source rectangle.
|
returns
|
(ret, DstOverStartX, DstOverStartY, SrcOverStartX, SrcOverStartY, OverWdt, OverHgt)
|
|
ret
|
0 = Areas overlap.
-1 = Areas don't overlap.
|
|
DstOverStartX
|
X coordinate of start of overlap area in destination rectangle.
|
|
DstOverStartY
|
Y coordinate of start of overlap area in destination rectangle.
|
|
SrcOverStartX
|
X coordinate of start of overlap area in source rectangle.
|
|
SrcOverStartY
|
Y coordinate of start of overlap area in source rectangle.
|
|
OverWdt
|
Width of overlap area.
|
|
OverHgt
|
Height of overlap area.
|
GetOverlapAreaD (DstStartX, DstStartY, DstEndX, DstEndY, SrcStartX, SrcStartY, SrcEndX, SrcEndY)
Finds the overlap area of the source rectangle to the destination rectangle. Double based.
DstStartX
|
Minimum X of destination rectangle.
|
DstStartY
|
Minimum Y of destination rectangle.
|
DstEndX
|
Maximum X of destination rectangle.
|
DstEndY
|
Maximum Y of destination rectangle.
|
SrcStartX
|
Minimum X of source rectangle.
|
SrcStartY
|
Minimum Y of source rectangle.
|
SrcEndX
|
Maximum Y of source rectangle.
|
SrcEndY
|
Maximum Y of source rectangle.
|
returns
|
(ret, DstOverStartX, DstOverStartY, SrcOverStartX, SrcOverStartY, OverWdt, OverHgt, OverlayMode)
|
|
ret
|
0 = Areas overlap
-1 = Areas don't overlap
|
|
DstOverStartX
|
X coordinate of start of overlap area in destination rectangle.
|
|
DstOverStartY
|
Y coordinate of start of overlap area in destination rectangle.
|
|
SrcOverStartX
|
X coordinate of start of overlap area in source rectangle.
|
|
SrcOverStartY
|
Y coordinate of start of overlap area in source rectangle.
|
|
OverWdt
|
Width of overlap area.
|
|
OverHgt
|
Height of overlap area.
|
|
OverlayMode
|
Optional. Returns primary side that is overlapped. LEFT=0
RIGHT=1
TOP=2
BOTTOM=3
|
|