A very simple implementation of Bresenham algorithm implementations
Project description
Simple Bresenham implementation
This is a very simple Bresenham implementation for enumerating pixels along a line including a very simple anti aliased version. It's the felt infinite implementation out there and has been implemented during enhancement of a tomography reconstruction library for personal use.
Dependencies
numpy >= 1.25
Installation
pip install pybresenham-tspspi
Usage
Simple lines
import matplotlib.pyplot as plt
import numpy as np
from bresenham import trace_line
fig, ax = plt.subplots()
img = np.zeros((51, 21))
for pt in trace_line((-25,-10),(10,10)):
img[int(pt[0]) + 25, int(pt[1]) + 10] = 1
ax.imshow(img)
Simple lines using callbacks
from bresenham import trace_line
def mycallback(point):
print(f"Point at {point[0]} x {point[1]}")
trace_line((-25,-10),(10,10),mycallback)
Antialiased lines
import matplotlib.pyplot as plt
import numpy as np
from bresenham import trace_line_antialiased_it
fig, ax = plt.subplots()
imgaa = np.zeros((51, 21))
for pt, weight in trace_line_antialiased_it((-25,-10),(10,10)):
imgaa[int(pt[0]) + 25, int(pt[1]) + 10] = weight
ax.imshow(imgaa)
Antialiased lines using callbacks
from bresenham import trace_line_antialiased
def mycallback(point, weight):
print(f"Point at {point[0]} x {point[1]} with weight {weight}")
trace_line_antialiased((-25,-10),(10,10),mycallback)
Project details
Release history Release notifications | RSS feed
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
Close
Hashes for pybresenham_tspspi-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e3b1dc4bf30030ca388b9a85cc0965e2151d00367823635286e882f1069c17a |
|
MD5 | ec241ca0c7ec15bc4de7532ce105b635 |
|
BLAKE2b-256 | 4a9afe53dc822f11d22011b018f8f4505e9be96504117e2375525efbc4e9a03b |