{{ message }}

Instantly share code, notes, and snippets.

# Just van Rossumjustvanrossum

Last active Jan 5, 2016
DrawBot: A moving tribute to Ellsworth Kelly's "Seine" (1951).
View EllsworthKellySeine.py
 # A moving tribute to Ellsworth Kelly's "Seine" (1951). from random import seed # seed() allows us to get repeatable pseudo-noise def expandGrid(pixels): assert len(pixels) % 2 mid = len(pixels) // 2 midColumn = pixels[mid] pixels.insert(mid + 1, list(midColumn)) pixels.insert(mid + 0, list(midColumn))
Last active Jan 30, 2016
DrawBot: Generate a moving interpretation of works by Victor Vasarely.
View VasarelyCircles.py
 # http://dailydrawbot.tumblr.com/post/136811506080/circles-after-victor-vasarely-source-code # # Based on works by Victor Vasarely # https://s-media-cache-ak0.pinimg.com/originals/a6/df/1f/a6df1fc5d2dd07d79a44c3aea5172b59.jpg # https://s-media-cache-ak0.pinimg.com/736x/1e/38/82/1e38820f1304c8750de216a31a5f5abe.jpg # http://interiorator.com/wp-content/uploads/2013/07/Vasarely-01.jpg def circle(pt, radius): diameter = 2 * radius x, y = pt
Last active Feb 10, 2016
DrawBot: Create an animated flower-like pattern by drawing circles on a donut.
View PsychoDonut.py
 # nCirclesH = 18; nCirclesV = 6: # http://dailydrawbot.tumblr.com/post/138985675364/psychodonut-2 # nCirclesH = 38; nCirclesV = 28: # http://dailydrawbot.tumblr.com/post/139047595845/psychodonut-3 def project(x, y, innerR, outerR, phase): # convert from "donut space" to normal space angle = 2 * pi * x f = (cos(phase + pi * y) + 1) / 2 R = innerR + f * (outerR - innerR)
Last active Mar 24, 2016
DrawBot: Generate an animation simulating an oscilloscope showing a Lissajous curve.
View OscilloscopeLissajous.py
 # http://dailydrawbot.tumblr.com/post/141565208389/oscilloscope-lissajous canvasSize = 500 nFrames = 20 nSteps = 20 radius = 195 nEchoes = 20 nScopeLines = 10 xFrequency = 3 yFrequency = 4
Last active Jun 21, 2016
Create a wavy animaton with DrawBot
View circlewavegrid.py
 # Physics stolen from: # http://giphy.com/gifs/wave-circle-point-13ePqdDflwat9e def blobPos(pt, r, a): x, y = pt x += cos(a) * r y += sin(a) * r return (x, y) def drawGrid(cells):
Created Sep 23, 2016
DrawBot: Generate a progress-spinner-like animation with growing circles.
View GrowingCircles.py
 # Result: # http://dailydrawbot.tumblr.com/post/150807743869/growing-circles def circle(pt, radius): diameter = 2 * radius x, y = pt oval(x - radius, y - radius, diameter, diameter) nFrames = 50 canvasSize = 500
Created May 3, 2016
DrawBot: Create a simple animation with a grid of rotating squares.
View SquareVsLozenge.py
 # http://dailydrawbot.tumblr.com/post/143801148619/square-vs-lozenge def rotatedSquare(x, y, squareSize, angle): offsetSin = squareSize * sin(radians(angle)) save() translate(x + offsetSin, 0) rotate(angle) rect(0, 0, squareSize, squareSize) restore()
Last active Dec 13, 2017
DrawBot: infinite zoom into a Sierpinski Square (takes a while to render!)
View SierpinskiSquare.py
 # Slightly modified from # https://twitter.com/petrvanblokland/status/860610270410018817 # by Petr van Blokland @petrvanblokland def drawSierpinskiSquare(px, py, w, maxW, maxH): if w < 1: return for x in range(3): for y in range(3): if x == 1 and y == 1:
Last active Feb 14, 2018
DrawBot: Emulate some of Marcel Duchamp's Rotoreliefs.
View MarcelDuchampRotoRelief.py
 # An interpretation of Marcel Duchamp's Rotoreliefs, as seen in his 1926 movie Anemic Cinema: # https://www.youtube.com/watch?v=dXINTf8kXCc def circle(pt, radius): diameter = 2 * radius x, y = pt oval(x - radius, y - radius, diameter, diameter) canvasSize = 500 nFrames = 64 # 64
Created Jun 6, 2019
macOS/Python: Get dimension info about active screens
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
You can’t perform that action at this time.