Beam endpoint works.
This commit is contained in:
@@ -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()
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user