Hi all,
FastGEO, a simple computational geometry library written in Object Pascal has been updated (version 5.0.1). FastGEO is a free to use library, governed by the Common Public License, Meaning it can be used "freely" in both commercial and open source projects.
URL:
fastgeo.partow.net
Current capabilities of FastGEO are as follows:
* 2D/3D Orientation primitive
* 2D/3D Signed area and volume primitive
* 2D/3D Collinear and coplanar point determination
* 2D/3D Segment intersection detection
* 2D/3D Segment intersection point calculation
* 2D/3D Segment half point calculation
* 2D/3D Parallel segment determination
* 2D/3D Point to point Euclidean, Ley, Manhattan, Chebyshev and inverse
Chebyshev distances
* 2D/3D Vertex angle calculation
* 2D/3D Geometric span
* 2D/3D Triangle, quadix, rectangle, circle and polygon area
calculation
* 2D/3D Triangle, quadix, rectangle, circle and polygon perimeter
calculation
* 2D/3D Polygon centroid calculation
* Polygon-Segment intersection detection
* Polygon-Polygon intersection detection (convex\concave)
* Polygon construction routine
* Point in/on triangle detection
* Point in/on rectangle detection
* Point in/on circle detection
* Point in/on quadix detection
* Point in/on sphere detection
* Point in/on convex\concave (non-complex) polygon region detection
* Circular hull and rectangular hull
* Spherical hull calculation
* Torricelli point
* Incenter
* Circum-center
* Inscribed circle
* Circum-circle
* Closest point on segment from a point (2D/3D)
* Closest point on line from a point
* Closest point on triangle from a point (2D/3D)
* Closest point on quadix from a point (2D/3D)
* Closest point on circle from a point
* Closest point on sphere from a point
* Closest point on Axis Aligned Bounding Box (AABB) from a point
* Closest point on circle from a 2D segment
* Closest point on sphere from a 3D segment
* Minimum distance from point to segment (2D/3D)
* Minimum distance from point to line (2D/3D)
* Cartesian angle relative to point of origin in 2D
* Point of reflection
* Point projection along linear path (2D/3D)
* Clipping of segments against triangles, quadii, rectangles, circles
and polygons
* Conversion from cartesian coordiante to the barycentric coordinate
system
* Conversion from barycentric coordinate to cartesian coordiante system
* Generate random points within AABB, 2D Triangle, 2D Quadix and Circle
* Generate random triangles and circles within AABB
* 2D/3D Rotations, fast rotations, translations, scaling and shear
* 2D/3D Vector addition, subtraction and multiplicationn
* 2D/3D Unit and magnitude vector calculation
* 2D/3D Dot product calculation
* Degenerate type evaluation for geometric primitives such as segments,
lines, triangles, quadii, sphere and circle
Some simple demonstration applications are available:
1.)Convex Hull (Graham Scan Algorithm) Demonstration
2.)Ordered Polygon Demonstration
3.)Barycentric Coordinates Conversion Demonstration
4.)FastGEO Demonstration Suite
FastGEO is compatible with:
1.Delphi 4+
2.FreePascal 2.0+
Any suggestions or improvements would be very much appreciated.
Kind regards
Arash Partow
__________________________________________________
Be one who knows what they don't know,
Instead of being one who knows not what they don't know,
Thinking they know everything about all things.
www.partow.net