anton-panfilov / geo1d
1D geometry
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/anton-panfilov/geo1d
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: >=10.5.13
README
1D geometry for PHP 8.1+
Geometry Intersections Documentation
The Geometry\Intersects provides functionalities to determine the intersections between various 1D geometric entities such as points, segments, and vectors.
Shapes
- Point: Represents a point in a 1D space.
- Segment: Represents a line segment defined by two endpoints.
- Vector: Represents an infinite line starting from a point and extending in a specified direction.
Example Usages
Below are examples demonstrating how to use each method in the Geometry class.
intersectsPoints Example
// Create two points $point1 = new Point(1, true); $point2 = new Point(1, true); // Check if the points intersect $result = Intersects::intersectsPoints($point1, $point2); // Output: true echo $result ? 'true' : 'false';
intersectsPointAndSegment Example
// Create a point and a segment $point = new Point(2, true); $segment = new Segment(new Point(1, true), new Point(3, true)); // Check if the point intersects with the segment $result = Intersects::intersectsPointAndSegment($point, $segment); // Output: true echo $result ? 'true' : 'false';
intersectsPointAndVector Example
// Create a point and a vector $point = new Point(5, true); $vector = new Vector(new Point(2, true), true); // Check if the point intersects with the vector $result = Intersects::intersectsPointAndVector($point, $vector); // Output: true echo $result ? 'true' : 'false';
intersectsSegments Example
// Create two segments $segment1 = new Segment(new Point(1, true), new Point(4, true)); $segment2 = new Segment(new Point(3, true), new Point(5, true)); // Check if the segments intersect $result = Intersects::intersectsSegments($segment1, $segment2); // Output: true echo $result ? 'true' : 'false';
intersectsSegmentAndVector Example
// Create a segment and a vector $segment = new Segment(new Point(1, true), new Point(3, true)); $vector = new Vector(new Point(2, true), true); // Check if the segment intersects with the vector $result = Intersects::intersectsSegmentAndVector($segment, $vector); // Output: true echo $result ? 'true' : 'false';
intersectsVectors Example
// Create two vectors $vector1 = new Vector(new Point(0, true), true); $vector2 = new Vector(new Point(2, true), false); // Check if the vectors intersect $result = Intersects::intersectsVectors($vector1, $vector2); // Output: true (since both vectors are infinite in one direction, they intersect) echo $result ? 'true' : 'false';
These examples provide a practical guide on how to use each method in your Intersects class, showcasing the creation of Point, Segment, and Vector objects and how they can be used to check for intersections.