
Bezier Curves and Type Design: A Tutorial - adamnemecek
http://learn.scannerlicker.net/2014/04/16/bezier-curves-and-type-design-a-tutorial/
======
leeoniya
i hate to be "that guy", but please don't fck with my native scrolling.

~~~
danso
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?

~~~
StavrosK
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).

~~~
danso
My point exactly...you missed:

> For more information on inflection points, have a __read here__

If I hadn't seen that sentence, and thought, "what's _here_?", I wouldn't have
even guessed that there were _any_ links in the article.

------
simias
I don't understand this bit:

> 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.

~~~
jacobolus
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/](http://www.levien.com/spiro/)

------
__david__
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?

~~~
scannerlicker
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. :)

~~~
__david__
So it's an upfront hedge to work around poorly written rasterizers?

I would love to see some examples of the bad rasterization this kind of thing
fixes. I think that would be an interesting article/addition.

------
a-saleh
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.

~~~
jordan0day
It got me too -- read the first sentence and thought "Why are they talking
about fonts?"

------
j2kun
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.

[http://jeremykun.com/2013/05/11/bezier-curves-and-
picasso/](http://jeremykun.com/2013/05/11/bezier-curves-and-picasso/)

~~~
scannerlicker
Wow! Awesome article! :D

Do you mind if I had your article to mine?

Cheers!

------
tfinniga
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.

~~~
mantrax5
Well, of course in CAD it won't matter since the surface formula isn't the end
product. But with fonts, it is.

------
droob
Leslie Cabarga's _Logo, Font & Lettering Bible_ has a nice section on this,
too. [http://amzn.com/1581804369](http://amzn.com/1581804369)

------
remon
I know nothing about font design and rendering and I most likely will never
need this knowledge but that was quite a fascinating pre-coffee read

------
digitalengineer
Not just fonts, logo design as well. This becomes more relevant now we can
have SVG (vector) art as well.

~~~
cju
Not just fonts and logos, Bezier curves were invented to design car parts.

------
throw7
Javascript only website alert.

