Add draw implementation for existing classes
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-03-11 19:49:47 +01:00
parent 8040ecbd55
commit 867745fe4e
3 changed files with 51 additions and 10 deletions

View File

@@ -44,11 +44,14 @@ class Algorithm():
self.step()
return self._result
def is_running(self):
"""Return if the algorithm is running."""
return self._running
def get_result(self):
"""Return the result of the algorithm."""
return self._result
def draw(self):
def draw(self, canvas, width, height, max_x, max_y):
"""Dummy for draw method"""
class NearestNeighborsSweep(Algorithm):
@@ -148,5 +151,30 @@ class NearestNeighborsSweep(Algorithm):
print(result_string)
return result_string
def draw(self):
"""TODO: Draw the algorithm state on a canvas"""
def draw(self, canvas, width, height, max_x, max_y):
"""Draw the algorithm state on a canvas"""
canvas.delete("all")
for pnt in self._input:
if len(self._es) > 0 and pnt == self._es[0]:
cur_x, cur_y = self._es[0].draw(canvas, width, height, max_x, max_y, "#0000FF")
canvas.create_line(cur_x, 0, cur_x, height, fill="#0000FF")
if self._sss["mindist"]:
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), 0, \
cur_x - (self._sss["mindist"] * width / max_x), height, fill="#0000FF")
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
cur_y - (self._sss["mindist"] * height / max_y), \
cur_x, cur_y - (self._sss["mindist"] * height / max_y), fill="#0000FF")
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
cur_y + (self._sss["mindist"] * height / max_y), \
cur_x, cur_y + (self._sss["mindist"] * height / max_y), fill="#0000FF")
else:
canvas.create_line(0, 0, 0, max_y, fill="#0000FF")
if pnt in self._result["points"]:
pnt.draw(canvas, width, height, max_x, max_y, "#FF0000")
else:
pnt.draw(canvas, width, height, max_x, max_y)
if self._result["points"][0]:
linesegment.LineSegment( \
self._result["points"][0], self._result["points"][1] \
).draw(canvas, width, height, max_x, max_y, "#FF0000")