Since you started the pile-on...having nothing be the visual indicator that something is a link is a terrible design decision. Are readers expected to run their mouse over the body of the text to haphazardly find which words are links?
This comment made me go back and play hunt-the-link :( Not a fun game, totally agree what an awful design. I don't like the strikethrough on hover either!
To be fair, there are no text links in that article (except "Pedro Amado", which, indeed, has no visual indication that there's anything special with it).
Is that what was wrong? The article wouldn't even scroll until I enabled Javacript, and then it was so fidgety I had to abandon my trackpad and use the arrows. Very frustrating.
Yes. The scrolling hack is very dissapointing. I only got through the first section before scrolling problems rendered the page unreadable on my phone.
> But if we were to write one to convert quadratic to cubic, the best the program could do is an approximation of the original outline, usually keeping the anchor points it already had, but adding one more control point per anchor.
Isn't quadratic just a special case of cubic? i.e. a cubic curve with C1 == C2. It does add one more control point per curve (so it's bad for the overall size of the drawing) but it's not an approximation, it's the exact same curve. It also seems like a much simpler conversion than the other way around.
Yes, the article is wrong. It’s possible to exactly convert a quadratic curve to a cubic curve, but going the other way the best possible is just an approximation. (Though the integer control point locations required by font descriptions can make it not quite exact.)
Also, this conversion doesn’t seem like something anyone should do by hand (e.g. adding extra control points which don’t change the curve): some algorithm is going to be able to optimize curves to minimize points, convert between curve types, etc. much better than a human is, and much much faster. [Though for all I know some existing software has crappy implementations]
Personally, I’d recommend people use Raph Levien’s Spiro curves to design their fonts (and not use Béziers directly); they make it much much easier to make whatever shape the designer is actually trying to make. (Folks on Hacker News interested in the mathematics of curve drawing should also definitely check out his PhD thesis.) http://www.levien.com/spiro/
That was pretty good, right up until the end. There's a curve that the author manually subdivides into 4 separate curves without any justification. With all the talk in the earlier sections about number of points it takes to render a curve, why would you add a bunch of points to a curve which is mathematically equivalent to the original?
It's a two way: file size (amount of points) and rasterization issues.
Since every DTP program has it's own (or multiple) rasterization algorithms (and the same goes for printers) we have to deal with these too. It's about balance. :)
Of topic: before I clicked I have half expected applications of some deep knowledge of category theory in topology to programming :D ... I guess that is what happens when you progam in haskell and share flat with algebra master student.
Surprised to see no mention of the underlying math (which is what I find interesting). In case anyone else feels the same, here's an article I wrote about Bezier curves.
I always love reading artists rules of thumb for how to use curves and surfaces in design.
I'm surprised how much performance is a consideration. In CAD the degree of the surfaces are not really a big deal any more, surface degrees of 3 are most common, in some fields you get up to degree 7 or 8. However there are generally a lot fewer surfaces in CAD then there are curves in a page full of fonts.
A couple of comments:
> to convert quadratic to cubic, the best the program could do is an approximation of the original outline
You can convert quadratic to cubic exactly (the algorithm is called degree elevation). Cubic to quadratic must be an approximation, but the artist seems happy with it and designs around it (Bezier endpoint at inflection point, etc). The other comments about file size and computation still hold.
> Since we still need a worldwide network of computers just to find some more pi digits, no perfect circles to anyone
Hmm, you can get perfect circles with rational Beziers, but I don't know if those are supported in fonts. I know they're not supported in svg.