Seigaiha Pattern



  • 0_1515483862506_SeigaihaPattern.png

    # See https://twitter.com/bicvudesign/status/950508015131734017
    
    def circle(x, y, diameter):
        radius = diameter / 2
        oval(x - radius, y - radius, diameter, diameter)
    
    def element(x, y, diameter, numCircles, relativeStrokeWidth):
        step = diameter / numCircles
        strokeWidth(relativeStrokeWidth * step)
        for i in range(numCircles):
            circle(x, y, diameter)
            diameter -= step
    
    diameter = 250
    numCircles = 6
    relativeStrokeWidth = 0.2
    numRows = 13
    numColumns = 5
    
    stroke(0.7)
    fill(1)
    
    for j in range(numRows + 4):
        y = 0.5 * diameter + 0.25 * diameter * (numRows - j)
        xOffset = 0.5 * diameter * (j % 2)
        for i in range(numColumns):
            x = diameter * i + xOffset
            element(x, y, diameter, numCircles, relativeStrokeWidth)
    

Log in to reply