### Rounded Corners and Squircles

October 13, 2011 When I was still doing experiments that required specialized hardware, I would enlist the services of our able machinists in their fully equipped machine shop. I would proudly show them my skillfully crafted CAD drawings, at which they were too polite to laugh, and they would ask me questions about the many details that I had left out. One question they would often ask is whether they should chamfer the edges. A chamfer is a beveled or rounded edge. The expression, "Nature abhors a vacuum," may be the paramount universal principle, but "Nature doesn't like hard edges or sharp corners," may be a close second. My son, unlike his amateur programming father, is an actual computer professional. He pointed out an interesting Steve Jobs story in his blog. Steve was a firm believer in the no-sharp-corners principle.[1] Bill Atkinson programmed QuickDraw, which was part of the Macintosh graphical user interface. The Motorola 68000 processor in the Macintosh was, as all microprocessors of the era, quite slow. There were, of course, no hardware floating-point operations, and integer multiplication and divisions were slow. Bill had devised a way to draw ovals that eschewed all the fancy math and used just additions and subtractions. As explained in Ref. 1, Bill used the fact that the sum of a sequence of odd numbers starting at one always equals a square; for example, 1 + 3 + 5 + 9 + 11 = 36. In general, Steve, who was known to be a demanding character, was not that impressed. What Steve wanted was rectangles with rounded corners, and he quickly pointed out many examples in their office and outside environments. Bill went back to his development station, and in just a few hours he devised an algorithm that drew rectangles with rounded corners that was almost as fast as his ovals algorithm.*Steve Jobs and Bill Gates at 'D5: All Things Digital' conference in Carlsbad, California, 2007.(Photo by Joi Ito, via Wikimedia Commons))*

Descartes would be proud of the extent that we've extended his concept of the graphical representation of algebraic equations in two dimensions to make our graphical user interfaces. Something like a rounded rectangle is one example of a superellipse poetically called a squircle. A squircle is an object that has qualities of both a square and a circle. The general equation for a superellipse, as shown below, was devised by the French mathematician, Gabriel Lamé, who is well known to mechanical engineers because of the Lamé parameters in elasticity. Lamé's second parameter is better known as the shear modulus. This equation generates a wide variety of closed curves, including the ordinary ellipse for n = 2. The ellipse, of course, becomes a circle when a = b. Other parameters will generate shapes that closely approximate a rectangle with rounded corners. For example, for a unit squircle, the parameters

**a**and

**b**are one, and the degree of "squareness" is set by the exponent,

**n**. Large values of n give you shapes that look more like a square.

*Squircles for n=4 (blue) and n=16 (red)*

Squircles will give you rectangles with rounded corners, but they're too computationally intensive for most purposes. I don't know how Bill Atkinson programmed rounded corners for QuickDraw, but I decided this would be an interesting programming exercise. Whenever an electrical engineer wants to smooth something, he puts it through a low pass filter. I decided to take this approach and feed a rectangle's corner multiple times through a simple low pass filter. You can see the result in the figure. The low pass filter was just,

xand the corner was passed through this filter five time. More rounding can be achieved with a larger number of passes through the filter. The actual effect will depend on the granularity of the input data points. This process is most likely not original with me, but how would I know? I'm just a computer amateur._{i}= 0.0625x_{i-2}+ 0.0125x_{i-1}+ 0.625x_{i}+ 0.125x_{i+1}+ 0.0625x_{i+2}

y_{i}= 0.0625y_{i-2}+ 0.0125y_{i-1}+ 0.625y_{i}+ 0.125y_{i+1}+ 0.0625y_{i+2}

*Rounded corner obtained by passing a rectangle's data points through a low pass filter.Graph via Gnumeric using data from a C program by the author.(C program source code))*

### Reference:

*Permanent Link to this article*

Linked Keywords: Experiment; machinist; CAD drawing; chamfer; Nature abhors a vacuum; amateur; Steve Jobs; Bill Atkinson; QuickDraw; Macintosh<; graphical user interface; Motorola 68000 processor; microprocessor; hardware floating-point operations; sequence; rectangle; algorithm; Joi Ito; Wikimedia Commons; Descartes; graphical representation of algebraic equations in two dimensions; superellipse; squircle; square; circle; equation; French; mathematician; Gabriel Lamé; Lamé parameters; elasticity; shear modulus; ellipse; electrical engineer; low pass filter; granularity; Gnumeric; C program source code.

### Google Search

Latest Books by Dev Gualtieri

*Mathematics-themed novel for middle-school students*

*Complete texts of LGM, Mother Wode, and The Alchemists of Mars*

Other Books

- Gregor Mendel (1822-1884) - November 28, 2022

- Passive Thermal Management - November 21, 2022

- Hominin Evolution - November 14, 2022

- Bird Nest Mechanics - November 7, 2022

- Boisterous Betelgeuse - October 31, 2022

- Eternal Bubbles - October 24, 2022

- The Strange Saccorhytus - October 17, 2022

- Sand Battery - October 10, 2022

- No Bang? - October 3, 2022

- Elasto-Magnetic Materials - September 26, 2022

- Analog Neural Networks - September 19, 2022

- Functional Materials Discovery - September 12, 2022

- Mood Lighting - September 5, 2022

- Martian Radiation - August 29, 2022

- Mineral Diversity - August 22, 2022

- Mistletoe Glue - August 15, 2022

- Gaia Asteroid Census - August 8, 2022

- Portrayal of Professions - August 1, 2022

- Odd Neural Networks - July 25, 2022

- Colloidal Pre-Assembly - July 18, 2022

- Atmospheric Water Harvesting - July 11, 2022

- Singing Saw - July 4, 2022

- Product Authentication - June 27, 2022

- Gel and Granular Flow - June 20, 2022

- Robot-Safe Jobs - June 12, 2022

- Methane and Global Warming - June 6, 2022

- Thermophotovoltaics - May 30, 2022

- Volcanic Ash and Aviation - May 23, 2022

- Text Topography - May 16, 2022

- Anthropocene Extinctions - May 9, 2022

- Happy Numbers - May 2, 2022

### Deep Archive

Deep Archive 2006-2008

**Blog Article Directory on a Single Page**