def test_get_semicircle_points(): assert guiutils.get_semicircle_points(0, 0, 1, 1, 0) == [] li = guiutils.get_semicircle_points(100, 100, 200, 100, 4) assert len(li) == 4 assert li[0] == (100, 100) assert li[1][0] > 100 assert li[1][1] < 100 assert li[2][0] > li[1][0] assert li[2][1] == li[1][1] assert li[3] == (200, 100) li = guiutils.get_semicircle_points(100, 100, 100, 200, 4) assert len(li) == 4 assert li[0] == (100, 100) assert li[1][0] > 100 assert li[1][1] > 100 assert li[2][0] > 100 assert li[2][0] == li[1][0] assert li[2][1] > 100 assert li[3] == (100, 200) li = guiutils.get_semicircle_points(200, 100, 100, 100, 4) assert len(li) == 4 assert li[0] == (200, 100) assert li[1][0] > 100 assert li[1][1] > 100 assert li[2][0] > 100 assert li[2][1] > 100 assert li[3] == (100, 100)
def _init_arch(x0, y0, x1, y1, theta, unit): """Return a list of points to make an approximate arch.""" xy = [] half = unit / 2.0 p0 = ((x0 + half * math.sin(theta), y0 - half * math.cos(theta))) p1 = ((x1 + half * math.sin(theta), y1 - half * math.cos(theta))) xy = [] xy.append((x0, y0)) xy.append(p0) arcpoints = guiutils.get_semicircle_points(p0[0], p0[1], p1[0], p1[1], 10) xy.extend(arcpoints) xy.append(p1) xy.append((x1, y1)) return xy