import pygame as pg import geometry as gm from sys import exit surface = gm.initGraphics("Triangulation Delaunay") # setPts = gm.SetPoints("input.txt") # setPts.draw(surface,(255,255,255)) lst = gm.inputPoints(surface, (255, 255, 255)) setPts = gm.SetPoints(lst) ch = gm.convexHull(setPts) gm.grid(surface) setPts.draw(surface, (255, 255, 255), 1) ch.draw(surface, (255, 0, 0)) pg.display.update() surfaceOriginal = surface.copy() gm.waiting() chain = gm.Polygon() if len(ch) <= 2: pg.quit() exit(0) chain.insert(gm.Edge(ch[0].org, ch[0].dst)) triangles = [] while len(chain) > 0: e = chain.remove(0) s = gm.conjugate(e, setPts)
import pygame as pg import geometry as gm from sys import exit surface = gm.initGraphics("Convex hull by Grakham") pg.mixer.music.load("track.ogg") # setPts = gm.SetPoints("input.txt") # setPts.draw(surface,(255,255,255)) lst = gm.inputPoints(surface,(255,255,255)) setPts = gm.SetPoints(lst) setPts.rearrange(lambda p1,p2: p1.x > p2.x) surface.fill((0,0,0)) gm.grid(surface) setPts.draw(surface,(255,255,255),1) pg.display.update() gm.waiting() setPts.sortByPolar() surface.fill((0,0,0)) gm.grid(surface) setPts.draw(surface,(255,255,255),1) pg.display.update() surfaceOriginal = surface.copy() gm.waiting() ch = gm.Polygon() if len(setPts) < 2:
import pygame as pg import geometry as gm from sys import exit surface = gm.initGraphics("Creating of starlike polygone") # setPts = gm.SetPoints("input.txt") # setPts.draw(surface,(255,255,255)) lst = gm.inputPoints(surface,(255,255,255)) setPts = gm.SetPoints(lst) idx = setPts.minX() surface.fill((0,0,0)) gm.grid(surface) setPts.draw(surface,(255,255,255),1) pg.display.update() surfaceOriginal = surface.copy() gm.waiting() if (len(setPts) < 2): pg.quit() exit(0) poly = gm.Polygon() if (idx != 0): poly.insert(gm.Edge(setPts[idx],setPts[0])) poly.insert(gm.Edge(setPts[0],setPts[idx]),1) startIdx = 1 else: poly.insert(gm.Edge(setPts[0],setPts[1])) poly.insert(gm.Edge(setPts[1],setPts[0]),1)
import pygame as pg import geometry as gm from sys import exit surface = gm.initGraphics("Triangulation of monotone polygone") # setPts = gm.SetPoints("input.txt") # setPts.draw(surface,(255,255,255)) lst = gm.inputPoints(surface,(255,255,255)) setPts = gm.SetPoints(lst) setPts.rearrange(lambda p1,p2: p1.x>p2.x) mn = gm.monotone(setPts) gm.grid(surface) setPts.draw(surface,(255,255,255),1) mn.draw(surface,(255,0,0)) pg.display.update() surfaceOriginal = surface.copy() gm.waiting() triangles = [] stack = [] if len(mn) > 1: stack.append(setPts[0]) stack.append(setPts[1]) for i in range(2,len(setPts)): s = setPts[i] if (mn.haveEdge(gm.Edge(s,stack[0])) and not mn.haveEdge(gm.Edge(s,stack[len(stack)-1]))):