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). |
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) |
xi = 0.0625xi-2 + 0.0125xi-1 + 0.625xi + 0.125xi+1 + 0.0625xi+2and 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.
yi = 0.0625yi-2 + 0.0125yi-1 + 0.625yi + 0.125yi+1 + 0.0625yi+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). |