patterns — moire

generator verdict no votes yet
source — gen_a.g01_moire
def g01_moire(rng):
    """MOIRE — two lattice line-stacks, one rotated a few degrees about centre.
    Line weight breathes sinusoidally down each stack, so the interference beats
    are crossed by a second, slower pulse."""
    N = 64
    c = Canvas(N, "GEOMETRIC", "lines", "moire", tiles=False)
    C = c.C
    ang = rng.uniform(3.5, 9.0) * rng.choice([1, -1])
    ph = rng.uniform(0, math.tau)
    per = rng.choice([7, 9, 11, 13])
    for layer in range(2):
        if layer:
            c.group_open(ang, 500, 500)
        for j in range(-N // 2, N + N // 2):
            y = (j + 0.5) * C
            w = 0.18 + 0.30 * (0.5 + 0.5 * math.sin(j / per * math.tau + ph + layer * 1.3))
            c.seg(-400, y, 1400, y, sw=w * C)
        if layer:
            c.group_close()
    return c
moire-lines-64-60d2
moire-lines-64-60d2
moire-lines-64-4fbb
moire-lines-64-4fbb
moire-lines-64-b70f
moire-lines-64-b70f
moire-lines-64-7fe6
moire-lines-64-7fe6
moire-lines-64-3574
moire-lines-64-3574
moire-lines-64-b792
moire-lines-64-b792
moire-lines-64-5fee
moire-lines-64-5fee
moire-lines-64-4ba5
moire-lines-64-4ba5
moire-lines-64-c8fd
moire-lines-64-c8fd
moire-lines-64-044f
moire-lines-64-044f
moire-lines-64-650d
moire-lines-64-650d erica ♥
moire-lines-64-6f98
moire-lines-64-6f98
moire-lines-64-34d3
moire-lines-64-34d3

generator