View CircleOfSquares.py
# 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): |
View cubic_evaluator.py
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 |
View MEHRINGDAMM.py
# 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) |
View Puzzle.py
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: |
View animated_color_grid.py
canvasSize = 500 | |
numSquares = 25 | |
squareSize = canvasSize / numSquares | |
numFrames = 50 | |
for frame in range(numFrames): | |
t = frame / numFrames | |
newPage(canvasSize, canvasSize) | |
frameDuration(1/25) |
View PaulBrownPattern.py
# 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) |
View screen_info.py
from AppKit import NSScreen, NSDeviceSize, NSDeviceResolution | |
from Quartz import CGDisplayScreenSize | |
for i, screen in enumerate(NSScreen.screens(), 1): | |
description = screen.deviceDescription() | |
pw, ph = description[NSDeviceSize].sizeValue() | |
rx, ry = description[NSDeviceResolution].sizeValue() | |
mmw, mmh = CGDisplayScreenSize(description["NSScreenNumber"]) | |
scaleFactor = screen.backingScaleFactor() | |
pw *= scaleFactor |
View NestedBoxes.py
# http://dailydrawbot.tumblr.com/post/163234641179/nested-boxes | |
def easeInOutQuad(t): | |
t *= 2 | |
if t < 1: | |
return 0.5 * (t ** 2) | |
else: | |
t = 2 - t | |
return 1 - 0.5 * (t ** 2) |
View Ellipses.py
# 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 |
NewerOlder