def drawPoints(points, title, clr='green'): draw = Turtle(title, background=True) if isinstance(points[0], PointGroup): for pointGroup in points: draw.connectPoints(pointGroup.points) else: for point in points: draw.addPoint((500*point[0] + 200, 500*point[1] + 200), clr) draw.dumpImage()
def drawPoints(points, title, clr='green'): draw = Turtle(title, background=True) if isinstance(points[0], PointGroup): for pointGroup in points: draw.connectPoints(pointGroup.points) else: for point in points: draw.addPoint((500 * point[0] + 200, 500 * point[1] + 200), clr) draw.dumpImage()
def wrapRandomGift(n, uniform=True): if uniform: draw = Turtle("Gift_Wrapping_uniform") points = list(np.random.uniform(0,500,[n,2])) else: draw = Turtle("Gift_Wrapping_normal") mean, sigma = 200, 70 points = list(np.random.normal(mean,sigma,[n,2])) for point in points: draw.addPoint(point) while len(points) >= 3: wraping = wrapGift(points) wr_len = len(wraping) for i in xrange(wr_len): draw.addLineNumpy(wraping[i], wraping[(i+1) % wr_len]) draw.dumpImage()
def randomSegments(n, l=150): points = np.random.uniform(0, 300, [n, 2]) vector = np.array([[l, 0]]) pairs = [] for i in xrange(n): A = points[i, :] while True: B = A + randomVector(l) if B[0, 0] >= 0 and B[0, 1] >= 0: # is it within first quadrant? pairs.append(np.row_stack((A, B))) break return pairs if __name__ == '__main__': draw = Turtle("Intersection") segments = randomSegments(15) for i, seg1 in enumerate(segments): for seg2 in segments[i + 1:]: intersect = segmentIntersect(seg1, seg2) if intersect != None: draw.addPoint(intersect) for seg in segments: draw.addLineNumpy(seg[0], seg[1]) draw.dumpImage()
def randomSegments(n, l=150): points = np.random.uniform(0,300,[n,2]) vector = np.array([[l, 0]]) pairs = [] for i in xrange(n): A = points[i,:] while True: B = A + randomVector(l) if B[0,0] >= 0 and B[0,1] >= 0: # is it within first quadrant? pairs.append(np.row_stack((A, B))) break return pairs if __name__ == '__main__': draw = Turtle("Intersection") segments = randomSegments(15) for i, seg1 in enumerate(segments): for seg2 in segments[i+1:]: intersect = segmentIntersect(seg1, seg2) if intersect != None: draw.addPoint(intersect) for seg in segments: draw.addLineNumpy(seg[0], seg[1]) draw.dumpImage()