Test
Project description
gridpath2
GridPath is a Python library for calculating grid-based paths and intersection points between two coordinates. It's particularly useful for applications requiring precise path tracking on a grid system, such as robotics, game development, or computer graphics.
Features
- Calculate grid-aligned paths between any two points
- Determine exact intersection points with grid lines
- Support for horizontal, vertical, and diagonal paths
- Handle special cases like same-point paths and 45-degree angles
- Return both grid points and precise intersection coordinates
Installation
pip install gridpath2
Usage
Basic usage example:
from gridpath2 import grid
# Calculate path between two points
result = grid(x1=1.5, y1=2.3, x2=4.7, y2=6.8)
# Access the results
grid_points = result["grid"] # List of grid points traversed
intersections = result["intersect"] # List of exact intersection points
The function returns a dictionary containing:
grid: List of grid points the path traverses throughintersect: List of exact coordinates where the path intersects with grid lines
Example Scenarios
- Horizontal path:
path = grid(1.5, 2.0, 4.5, 2.0)
# Returns path along y=2
- Vertical path:
path = grid(2.0, 1.5, 2.0, 4.5)
# Returns path along x=2
- Diagonal path (45 degrees):
path = grid(1.0, 1.0, 3.0, 3.0)
# Returns diagonal path with slope=1
- General case:
path = grid(1.5, 2.3, 4.7, 6.8)
# Returns optimal grid path with precise intersections
Function Details
def grid(x1: float, y1: float, x2: float, y2: float) -> dict:
"""Calculate grid path and intersection points between two coordinates.
Args:
x1, y1: Starting point coordinates
x2, y2: Ending point coordinates
Returns:
dict: Dictionary containing:
- "grid": List of grid points [[x1, y1], [x2, y2], ...]
- "intersect": List of intersection points [[x1, y1], [x2, y2], ...]
"""
Technical Details
The library handles several special cases:
- Same point paths
- Horizontal lines
- Vertical lines
- 45-degree diagonal lines
- General cases with arbitrary slopes
For general cases, the algorithm:
- Calculates the slope between points
- Determines the next grid intersection based on slope direction
- Tracks both grid points and exact intersections
- Handles positive and negative slopes differently
- Provides precise intersection coordinates
Use Cases
- Robot path planning
- Game development (grid-based movement)
- Computer graphics (line rasterization)
- Scientific visualization
- CAD applications
Requirements
- Python 3.6+
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gridpath2-0.1.1.tar.gz.
File metadata
- Download URL: gridpath2-0.1.1.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8accb9382c38f76fb98cf2e4533ef30cfb3d146c8ca09bbdbd4b341eaf219656
|
|
| MD5 |
98636580dd79e8a5093934d263a0760f
|
|
| BLAKE2b-256 |
8127f7399afd0d1b421fdf61061af55e511e59932243c767a3846ec7ab67e96f
|
File details
Details for the file gridpath2-0.1.1-py2.py3-none-any.whl.
File metadata
- Download URL: gridpath2-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a04b1733a750d948ddf0a695912093d77e283096d486c45a92dc4b944df0aab
|
|
| MD5 |
0b7c8d29791da27587edffc27ac15a1e
|
|
| BLAKE2b-256 |
e982935696eac957e444b9888d531be63852e26d60cb5ceaca9d71804bac971c
|