Upper hull

This commit is contained in:
Alexander Munch-Hansen 2018-09-20 16:05:08 +02:00
parent 1bbb5d9cf3
commit 1f6ade0c9a

View File

@ -61,16 +61,11 @@ def quick_hull(points: Set[Point]):
hull = {left, right} hull = {left, right}
points = points - hull points = points - hull
find_hull({p for p in points if not is_left(left, right, p)}, find_hull({p for p in points if is_left(left, right, p)},
left, left,
right, right,
hull) hull)
find_hull({p for p in points if not is_left(right, left, p)},
right,
left,
hull)
return hull return hull
@ -83,20 +78,24 @@ def find_hull(points: Set[Point], p: Point, q: Point, hull: Set[Point]):
s1 = {point s1 = {point
for point in points for point in points
if not is_left(p, farthest, point)} if is_left(p, farthest, point)}
print("--") print("--")
print(s1) print(s1)
s2 = {point s2 = {point
for point in points for point in points
if not is_left(farthest, q, point)} if is_left(farthest, q, point)}
print(s2) print(s2)
find_hull(s1, p, farthest, hull) find_hull(s1, p, farthest, hull)
find_hull(s2, farthest, q, hull) find_hull(s2, farthest, q, hull)
peepees = {gen_point() for _ in range(11)} peepees = {gen_point() for _ in range(13)}
#peepees = {Point(2, 5), Point(3, 1), Point(3, 4), Point(9, 4), Point(1, 5), Point(5, 7)}
hulliees = quick_hull(peepees) hulliees = quick_hull(peepees)
display(peepees, hulliees) a = sorted(hulliees)
display(peepees, a)