def doodle2_fun(): d = [ ag.Circle(c=(0.5, 0.5), r=0.45), ag.Circle(c=(1, 0.5), r=0.45), ag.Circle(c=(1.5, 0.5), r=0.45), ] ag.set_style(d, "fill", "red") return d
# n_waves = 100 # x = [] # for d in (1 + np.arange(n_waves)) / n_waves: # wav = ag.wave(start=(200, 200), direction=d * 360, width=d * 20, # period=1 + d * 30, length=1 + d * 180) # ag.set_style(wav, 'stroke', (d, 1, 0.5)) # ag.set_style(wav, 'stroke-width', d * 2) # x.append(wav) # ag.write_SVG(x, w, h, 'svg/shapes1.svg') # ag.to_PNG('svg/shapes1.svg', 'png/shapes1.png') ###################################### # Wobble (make edges a little messy) # ###################################### x = [] x.append(ag.Circle(c=(100, 100), r=80)) x.append(ag.Line(p1=(200, 30), p2=(250, 170))) x.append(ag.Line(points=[(300, 30), (330, 170), (350, 90), (370, 160)])) x.append(ag.Polygon([(30, 230), (30, 370), (170, 230), (170, 370)])) # x.append( # ex.wave(start=(230, 230), direction=45, period=ag.Delta(20, delta=0.1), length=200) # ) x.append(ag.Spline([(300, 230), (330, 370), (350, 290), (370, 360)])) ex.wobble(x) c.add(x) c.png("png/shapes1.png")
import os import algoraphics as ag os.chdir(os.path.dirname(os.path.abspath(__file__))) c = ag.Canvas(400, 400) ########### # Shadows # ########### x = [ ag.Circle(c=(100, 150), r=50, stroke="#FFDDDD"), ag.Circle(c=(150, 100), r=50, stroke="#DDDDFF"), ] ag.set_style(x, "stroke-width", 20) ag.add_shadows(x, stdev=20, darkness=0.5) y = [[ ag.Circle(c=(300, 250), r=50, fill="#FFDDDD"), ag.Circle(c=(250, 300), r=50, fill="#DDDDFF"), ]] # ag.add_paper_texture(y) # Note that add_shadows adds shadows to the immediate list elements as # wholes, meaning the top circle should not project a shadow onto the # one behind it. ag.add_shadows(y, stdev=20, darkness=0.5) c.add(x, y) c.png("png/textures1.png")
os.chdir(os.path.dirname(os.path.abspath(__file__))) w, h = 400, 400 c = ag.Canvas(w, h) ################# # Splatter text # ################# color = ag.Color(hue=ag.Uniform(0, 0.15), sat=0.8, li=0.5) points = ex.text_points("ABCDEFG", 50, pt_spacing=0.5, char_spacing=0.15) ag.jitter_points(points, 2) points = [ag.Translation(p, (20, 300)) for p in points] x1 = [ag.Circle(c=p, r=ag.Exponential(2.2, stdev=1)) for p in points] ag.set_styles(x1, "fill", color) c.new(ag.shuffled(x1)) points = ex.text_points("HIJKLM", 50, pt_spacing=0.5, char_spacing=0.15) ag.jitter_points(points, 2) points = [ag.Translation(p, (20, 200)) for p in points] x2 = [ag.Circle(c=p, r=ag.Exponential(2.2, stdev=1)) for p in points] ag.set_styles(x2, "fill", color) c.add(ag.shuffled(x2)) points = ex.text_points("0123456789", 50, pt_spacing=0.5, char_spacing=0.15) ag.jitter_points(points, 2) points = [ag.Translation(p, (20, 100)) for p in points] x3 = [ag.Circle(c=p, r=ag.Exponential(2.2, stdev=1)) for p in points] ag.set_styles(x3, "fill", color)
def doodle1_fun(): d = ag.Circle(c=(0.5, 0.5), r=0.45) ag.set_style(d, "fill", "green") return d
start = rand_point_on_circle(c, r) direc = ag.direction_to(start, c) backbone = [start] for i in range(int(2.2 * r / 10)): backbone.append( ag.Move(backbone[-1], direction=direc, distance=ag.Uniform(min=8, max=12))) direc = direc + ag.Uniform(min=-20, max=20) filament = ex.filament(backbone, width=ag.Uniform(min=8, max=12)) color = ag.Color(ag.Uniform(min=0, max=0.15), 1, 0.5) ag.set_styles(filament, "fill", color) return filament outline = ag.Circle(c=(200, 200), r=100) x = ex.fill_region(outline, filament_fill, min_coverage=0.99) ag.add_shadows(x.members) c.add(x) c.png("png/fill1.png") ###################################### # Wrapping paper-style object tiling # ###################################### def doodle1_fun(): d = ag.Circle(c=(0.5, 0.5), r=0.45) ag.set_style(d, "fill", "green") return d