Beam endpoint works.

This commit is contained in:
Danny Staple
2022-12-14 23:54:31 +00:00
parent f57add5106
commit b2228889e8
5 changed files with 123 additions and 168 deletions
@@ -0,0 +1,27 @@
import arena
from matplotlib import pyplot as plt
import numpy as np
def draw_arena_boundaries(arena):
for line in arena:
plt.plot([line[0][0], line[1][0]], [line[0][1], line[1][1]], color="red")
def draw_distance_grid(ax):
overscan_size = arena.overscan * arena.grid_cell_size
ax.imshow(
arena.distance_grid.T,
extent = [-overscan_size, arena.width + overscan_size, -overscan_size, arena.height + overscan_size],
origin="lower",
cmap="gray",
norm="log",
)
fig, ax = plt.subplots()
draw_arena_boundaries(arena.boundary_lines)
print("Value at 0, 1500 is", arena.get_distance_grid_at_point(0, 1500))
# print("Value at 1000, 500 is", arena.get_distance_grid_at_point(1000, 500))
# print("Value at 500, 1000 is", arena.get_distance_grid_at_point(500, 1000))
# print("Value at 550, 1000 is", arena.get_distance_grid_at_point(550, 1000))
draw_distance_grid(ax)
plt.show()
+24
View File
@@ -0,0 +1,24 @@
from unittest import TestCase
import math
import arena
class TestArena(TestCase):
def test_get_point_to_distance_segment_1(self):
segment = ((0, 0), (0, 1500))
for x in range(0, 1500):
for y in (0, 500, 1000):
self.assertEqual(arena.get_point_distance_to_segment(x, y, segment), x)
def test_get_point_to_distance_segment_2(self):
segment = ((0, 0), (1500, 0))
for y in range(0, 1500):
for x in (0, 500, 1000):
self.assertEqual(arena.get_point_distance_to_segment(x, y, segment), y)
def test_get_point_distance_to_nearest_segment(self):
segments = [
[(0, 1500), (1500, 1500)],
]
for y in range(1500):
for x in (0, 500, 1000):
self.assertEqual(arena.get_point_distance_to_nearest_segment(segments, x, y), 1500 - y)