def create_circle(lon, lat, radius, resolution=64): # Build circle circle = CirclePolygon((lon, lat), radius, resolution, facecolor='b') # Get coordinates path = circle.get_path() transform = circle.get_transform() path = transform.transform_path(path) # Create ring ring = ogr.Geometry(ogr.wkbLinearRing) for v in path.vertices: ring.AddPoint(v[0], v[1]) # Create polygon (from OGR API) p = ogr.Geometry(ogr.wkbPolygon) p.AddGeometry(ring) return p
def rotate(lis, x): x = radians(x) return matmult([[cos(x), -sin(x), 0], [sin(x), cos(x), 0], [0, 0, 1]], lis) def translate(lis, dx, dy): return matmult([[1, 0, dx], [0, 1, dy], [0, 0, 1]], lis) if instructions[0] == "disc": # a,b,r=map(int,instructions[1].split()) circle = CirclePolygon((a, b), radius=r) plt.gca().add_patch(circle) verts = circle.get_path().vertices x = list(verts[:, 0]) y = list(verts[:, 1]) plt.axis('scaled') instructions = instructions[1:-1] k = str(instructions[0]) k = k[2:] #xs, ys = map(int, k.split()) ins = instructions r1 = r r2 = r while len(ins) != 0: llp = len(x) asdf = [1] * llp