See the blog post: Processing: Circle Square