I broke out the programmer art skills and tweaked the header image to something a bit nicer than the default, and while I was at it, made myself an icon for the site. If the icon doesn’t show up for you, don’t blame me. Get yourself a standards–compliant browser. I…
Language memage
OK, this is going to be a strange mix. WHAT DO YOU CALL: 1. A body of water, smaller than a river, contained within relatively narrow banks. A stream. 2. What the thing you push around the grocery store is called. A trolley or a cart. Depends if the back…
Curve and Vector
Curve (com.elbeno.curve) is my common lisp package for doing cool things with two-dimensional curves. In particular, modulating cubic Bézier curves and splines, but also approximating arbitrary elliptical and circular arc segments with cubic Bézier curves. It depends on Vector (com.elbeno.vector), a cobbled together set of functionality for representing and manipulating…
Approximating elliptical arcs with Bézier curves
In doing my modulation work with curves and ellipses, I extended the vecto function for drawing an ellipse to enable an oriented ellipse. Lately it occurred to me that this didn’t go far enough in terms of functionality, and I began wondering about how to draw part of an elliptical…
Functional Fills with Vecto
I’ve been wanting to do exclusive-or functional fill in vecto for a while, so tonight I delved in. I added a pixel function to the graphics state and kept the default as the normal alpha-blending it was already doing. The pixel function signature is a bit clumsy, but it was…
The Hedgehog
The hedgehog is a noble beast; he keeps the garden clear Of slugs and snails and other pests throughout the temperate year. Just after dusk you’ll see him on his customary beat Hunting Lumbricus terrestris or some other juicy treat. Although he’s not the biggest or the fastest or most…
A bit of Pythagoras
Given Pythagorean triples that satisfy the Diophantine equation: a² + b² = c² where a, b and c share no common factors, one of a and b must be odd, the other must be even, and c is always odd. First, note that squares of even numbers are always divisible…
Even more on ellipses and splines
Honestly, they’re incredibly interesting. Anyway, I’ll skip straight to the pièce de résistance: This is a 4-curve cubic Bézier spline modulated onto an ellipse. The ellipse [a=4, b=3] is at an angle of π/4. C1 continuity of the complete curve is preserved. The flickr set tells the story of how…
On the Benefits of Showering
From time to time when I’m perplexed Or by a tricky problem vexed; A cipher that just will not yield But keeps its mystery concealed, I find I have a last resort Before cerebral fuel runs short: I open up the bathroom door And step onto the tiled floor. The…
Ellipses & Splines again
After some code cleanup and generalisation, I can now modulate whole splines onto ellipses and onto splines themselves. Here is my simple 4-bezier spline modulated onto an ellipse: And onto itself: Repeatedly modulating a spline onto itself while varying the frequency parameter leads to some interesting and fractal patterns. Nice.