This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Generate a jellyfish-like pulsating blobby animation. | |
from random import seed | |
def varyPoint(pt, radius, phase): | |
x, y = pt | |
dx = radius * cos(phase) | |
dy = radius * sin(phase) | |
return x + dx, y + dy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Original: | |
# Paul Brown, 'Untitled Computer Assisted Drawing' (1975) | |
# The program was written in Fortran and drawn with Calcomp's drum pen plotter. | |
# https://twitter.com/satoshi_aizawa/status/1218786881631965186 | |
def drawArc(center, radius, startAngle, endAngle): | |
bez = BezierPath() | |
bez.arc(center, radius, startAngle, endAngle, False) | |
drawPath(bez) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def translatePoints(points, dx, dy): | |
return [(x + dx, y + dy) for x, y in points] | |
def transposePoints(points): | |
return [(y, x) for x, y in points] | |
def pairs(seq): | |
it = iter(seq) | |
prev = next(it) | |
for item in it: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Image from https://twitter.com/Berlin_Type/status/1250742042004766730 | |
imagePath = "MEHRINGDAMM.jpeg" | |
w, h = imageSize(imagePath) | |
size(w, h) | |
with savedState(): | |
rotate(0.1) | |
image(imagePath, (0, 0), 0.6) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# http://dailydrawbot.tumblr.com/post/160078796339/lissajous-grid | |
# remade from https://twitter.com/fermatslibrary/status/857580490425020416 | |
def lissajous(a, b, phase, radius): | |
numSteps = 340 | |
points = [] | |
for i in range(numSteps): | |
angle = 2 * pi * i / numSteps | |
x = radius * sin(a * angle + phase) | |
y = -radius * sin(b * angle) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This borrows heavily from: | |
# http://jsfiddle.net/Rebug/5uLr7s6o/ | |
# | |
# Resulting gif: | |
# http://dailydrawbot.tumblr.com/post/134989689114/an-archimedean-spherical-spiral | |
import math | |
import colorsys | |
def circle(pt, radius): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Result: | |
# http://dailydrawbot.tumblr.com/post/160364438359/ellipses | |
def drawEllipses(cx, cy, rx, ry, dx, dy, n, bw=0): | |
for i in range(n): | |
fill(bw) | |
oval(cx - rx, cy - ry, 2 * rx, 2 * ry) | |
rx -= dx | |
ry -= dy | |
bw = 1 - bw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from fontTools.misc.bezierTools import calcCubicParameters | |
def cubic(*cubic_points): | |
(ax, ay), (bx, by), (cx, cy), (dx, dy) = calcCubicParameters(*cubic_points) | |
def evaluate(t): | |
ttt = t * t * t | |
tt = t * t | |
x = ax * ttt + bx * tt + cx * t + dx | |
y = ay * ttt + by * tt + cy * t + dy | |
return x, y |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# boring version of https://twitter.com/beesandbombs/status/1334541858366775298 | |
# <3 beesandbombs! | |
canvasSize = 800 | |
numFrames = 50 | |
numSquares = 50 | |
radius = 0.3 * canvasSize | |
squareSize = 0.2 * canvasSize | |
for frame in range(numFrames): |