Fix algorithm.py and draw final result
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
57
algorithm.py
57
algorithm.py
@@ -105,6 +105,8 @@ class NearestNeighborsSweep(Algorithm):
|
|||||||
for pnt in self._sss["points"]:
|
for pnt in self._sss["points"]:
|
||||||
if self._sss["mindist"] is None:
|
if self._sss["mindist"] is None:
|
||||||
self._sss["mindist"] = linesegment.LineSegment(pnt, event).get_length()
|
self._sss["mindist"] = linesegment.LineSegment(pnt, event).get_length()
|
||||||
|
self._result["points"][0] = pnt
|
||||||
|
self._result["points"][1] = event
|
||||||
elif (event.get_y() - self._sss["mindist"]) < \
|
elif (event.get_y() - self._sss["mindist"]) < \
|
||||||
pnt.get_y() < (event.get_y() + self._sss["mindist"]):
|
pnt.get_y() < (event.get_y() + self._sss["mindist"]):
|
||||||
distance = linesegment.LineSegment(pnt, event).get_length()
|
distance = linesegment.LineSegment(pnt, event).get_length()
|
||||||
@@ -154,27 +156,38 @@ class NearestNeighborsSweep(Algorithm):
|
|||||||
def draw(self, canvas, width, height, max_x, max_y):
|
def draw(self, canvas, width, height, max_x, max_y):
|
||||||
"""Draw the algorithm state on a canvas"""
|
"""Draw the algorithm state on a canvas"""
|
||||||
canvas.delete("all")
|
canvas.delete("all")
|
||||||
for pnt in self._input:
|
if self._running:
|
||||||
if len(self._es) > 0 and pnt == self._es[0]:
|
for pnt in self._input:
|
||||||
cur_x, cur_y = self._es[0].draw(canvas, width, height, max_x, max_y, "#0000FF")
|
if len(self._es) > 0 and pnt == self._es[0]:
|
||||||
canvas.create_line(cur_x, 0, cur_x, height, fill="#0000FF")
|
cur_x, cur_y = self._es[0].draw(canvas, width, height, max_x, max_y, "#0000FF")
|
||||||
if self._sss["mindist"]:
|
canvas.create_line(cur_x, 0, cur_x, height, fill="#0000FF")
|
||||||
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), 0, \
|
if self._sss["mindist"]:
|
||||||
cur_x - (self._sss["mindist"] * width / max_x), height, fill="#0000FF")
|
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), 0, \
|
||||||
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
|
cur_x - (self._sss["mindist"] * width / max_x), height, fill="#0000FF")
|
||||||
cur_y - (self._sss["mindist"] * height / max_y), \
|
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
|
||||||
cur_x, cur_y - (self._sss["mindist"] * height / max_y), fill="#0000FF")
|
cur_y - (self._sss["mindist"] * height / max_y), \
|
||||||
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
|
cur_x, cur_y - (self._sss["mindist"] * height / max_y), fill="#0000FF")
|
||||||
cur_y + (self._sss["mindist"] * height / max_y), \
|
canvas.create_line(cur_x - (self._sss["mindist"] * width / max_x), \
|
||||||
cur_x, cur_y + (self._sss["mindist"] * height / max_y), fill="#0000FF")
|
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:
|
else:
|
||||||
canvas.create_line(0, 0, 0, max_y, fill="#0000FF")
|
pnt.draw(canvas, width, height, max_x, max_y)
|
||||||
if pnt in self._result["points"]:
|
if self._result["points"][0]:
|
||||||
pnt.draw(canvas, width, height, max_x, max_y, "#FF0000")
|
linesegment.LineSegment( \
|
||||||
else:
|
self._result["points"][0], self._result["points"][1] \
|
||||||
pnt.draw(canvas, width, height, max_x, max_y)
|
).draw(canvas, width, height, max_x, max_y, "#FF0000")
|
||||||
if self._result["points"][0]:
|
else:
|
||||||
linesegment.LineSegment( \
|
for pnt in self._input:
|
||||||
self._result["points"][0], self._result["points"][1] \
|
if pnt in self._result["points"]:
|
||||||
).draw(canvas, width, height, max_x, max_y, "#FF0000")
|
pnt.draw(canvas, width, height, max_x, max_y, "#FF3333")
|
||||||
|
else:
|
||||||
|
pnt.draw(canvas, width, height, max_x, max_y, "#222222")
|
||||||
|
if self._result["points"][0]:
|
||||||
|
linesegment.LineSegment( \
|
||||||
|
self._result["points"][0], self._result["points"][1] \
|
||||||
|
).draw(canvas, width, height, max_x, max_y, "#FF0000")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user