From Newsgroup: alt.lang.asm
John Ames <
commodorejohn@gmail.com> writes:
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
For some reason, the QuickDraw graphics engine never included B|-zier
curves. If you have those, then itrCOs not hard to compute a fillet
(rounding curve) on the intersection of two lines (e.g. a corner of a
rectangle).
I don't know why they weren't added later (assuming they weren't,) but
the reason RoundRects were a primitive unto themselves was performance. Plotting B|-zier curves in a generalized way requires *way* more math
than Atkinson's technique, which doesn't even require multiplication:
https://folklore.org/Round_Rects_Are_Everywhere.html?sort=date
On an 8 Mhz 68000, that makes quite a bit of difference.
That was a bit hard to do on the Macintosh, since the math for circles
usually involved taking square roots, and the 68000 processor in the
Lisa and Macintosh didn't support floating point operations. But Bill
had come up with a clever way to do the circle calculation that only
used addition and subtraction, not even multiplication or division,
which the 68000 could do, but was kind of slow at.
AFAIK the algorithm goes back to Bresenham in the 1960s - although itrCOs certainly possible Atkinson rediscovered it.
--
https://www.greenend.org.uk/rjk/
--- Synchronet 3.21d-Linux NewsLink 1.2