Beispiel #1
0
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
Beispiel #2
0
# 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")
Beispiel #3
0
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")
Beispiel #4
0
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)
Beispiel #5
0
def doodle1_fun():
    d = ag.Circle(c=(0.5, 0.5), r=0.45)
    ag.set_style(d, "fill", "green")
    return d
Beispiel #6
0
    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