def get_segments_from_file(filename, drawer):

    segments = SegmentList()
    points = read_points_from_file(filename, ' ')
    p1 = points[0]
    for point in points[1:]:
        segments.add_segment_from_points(p1, point)
        p1 = point
    segments.add_segment_from_points(points[-1], points[0])

    for segment in segments.segments:
        p1 = (segment.x1, segment.y1)
        p2 = (segment.x2, segment.y2)
        drawer.draw_line(p1, p2, color="grey")
        drawer.draw_point(p1, color="black")
        drawer.draw_point(p2, color="black")

    return segments
def draw_segments_with_mouse(scale_arguments, click_epsilon=0.03):

    d, win_size_x, win_size_y, x_ax, y_ax = scale_arguments
    segments = SegmentList()

    prev_point = None
    init_point = get_mouse_scaled(*scale_arguments)
    current_point = init_point
    while not prev_point or click_difference(prev_point, current_point, click_epsilon):
        if prev_point:
            segments.add_segment_from_points(prev_point, current_point)
        d.draw_point(current_point, color="black")
        prev_point = current_point
        current_point = get_mouse_scaled(*scale_arguments)
        d.draw_line(current_point, prev_point, color="grey")

    segments.add_segment_from_points(prev_point, init_point)
    d.draw_line(current_point, init_point, color="gray")

    return segments
def get_segments_from_file(filename, drawer):

    segments = SegmentList()
    points = read_points_from_file(filename, ' ')
    p1 = points[0]
    for point in points[1:]:
        segments.add_segment_from_points(p1, point)
        p1 = point
    segments.add_segment_from_points(points[-1], points[0])

    for segment in segments.segments:
        p1 = (segment.x1, segment.y1)
        p2 = (segment.x2, segment.y2)
        drawer.draw_line(p1, p2, color="grey")
        drawer.draw_point(p1, color="black")
        drawer.draw_point(p2, color="black")

    return segments
def draw_segments_with_mouse(scale_arguments, click_epsilon=0.03):

    d, win_size_x, win_size_y, x_ax, y_ax = scale_arguments
    segments = SegmentList()

    prev_point = None
    init_point = get_mouse_scaled(*scale_arguments)
    current_point = init_point
    while not prev_point or click_difference(prev_point, current_point,
                                             click_epsilon):
        if prev_point:
            segments.add_segment_from_points(prev_point, current_point)
        d.draw_point(current_point, color="black")
        prev_point = current_point
        current_point = get_mouse_scaled(*scale_arguments)
        d.draw_line(current_point, prev_point, color="grey")

    segments.add_segment_from_points(prev_point, init_point)
    d.draw_line(current_point, init_point, color="gray")

    return segments