Why are inflections bad?
James Puckett
Posts: 1,993
Why are inflections on curves bad? I remember learning not to have inflections back when I was learning to draw type, and both Fontlab’s FontAudit and Jens Kutilek’s Red Arrows highlight them as a problem. But I’ve designed a typeface with inflections all over the place and they don’t cause any problems that I can spot.
3
Comments
-
In many situations, inflections create x,y curve extrema without nodes, so the recommendation against them was related to the recommendation to have nodes at extrema, which in turn was related to hinting. As with many other aspects of vector font display, the importance of such recommendations diminishes as resolution increases.6
-
However are they problematic in the situations they don't create curves extremas without nodes ?
1 -
It's not merely a hinting issue: inflections typically don't survive cubic-to-quadratic conversions (something software often does behind one's back). So yes, always mark your inflections points with nodes.12
-
Good point, Hrant. Yes, unmarked inflection points can cause problems for curve conversion.0
-
From what I learnt about this it had to do with hinting. The glyphs app had an old article about the do's and don'ts and if I remember correctly it specifically mentioned about helping rasterizers. How it helps the rasterizer it didn't explain but to understand more on the subject I went digging for stuff and ended up at typotheque's [article here] was super useful. Also if you convert it to ttf, it'll want you to place a node there. Aside from all this I've personally found the curve to be nicer if it's not fighting two different directions. If you asked me why I can't tell you but visually you kinda notice slightly better smoothness.0
-
There are two sides to this. When converting to TrueType, you get much better results when you add a point. That can easily by automated. On the other hand, when you like to interpolate it much better when you can avoid the extra point as it can cause kinks.
2 -
Georg Seifert said:There are two sides to this. When converting to TrueType, you get much better results when you add a point. That can easily by automated. On the other hand, when you like to interpolate it much better when you can avoid the extra point as it can cause kinks.2
-
Which is why –like trapping– adding explicit inflection nodes is a "post-production" thing.Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.
[Probably a topic for another thread: I've had some interesting experiences making variable font outlines with ink traps. Because inter-axis interpolation in OTVar is additive, it is quite easy to have ink traps in unmastered corners of the design space behave in weird ways, e.g. pushing out below the bottom of V in heavy/small mixes.]
4 -
John Hudson said:Which is why –like trapping– adding explicit inflection nodes is a "post-production" thing.Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.0
-
It’s not necessary for small details.
For instance, here is a foot serif from Adobe Garamond (1997).
1 -
Regarding Red Arrow: I had a user request to add inflection warnings, so I did. I agree it is not a very serious error in most situations.
FontLab’s FontAudit only warns about inflections that are close to the start or end of the segment, because those are probably unintended.
Glyphs will add explicit inflection points automatically when exporting to TrueType. If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:
You can fix that by adding offcurve points to the problematic segments (so there is the same number on each side of the inflection) and refitting the curves to the original PostScript curve:
This way the inflection points can stay implicit and will not cause kinks in the interpolation.
We did a lot of work like this recently as shown by Luc(as) in this video from TypoLabs starting at 13:13 minutes.4 -
Jens Kutilek said:Glyphs will add explicit inflection points automatically when exporting to TrueType.2
-
In think that, also, some unwanted side effects may occur outside of web and print:
Has someone run into such trouble? It was a long time ago I worked on such 3D letters.0 -
Vasil Stanev said:In think that, also, some unwanted side effects may occur outside of web and print:
Has someone run into such trouble? It was a long time ago I worked on such 3D letters.Nothing to do with inflections but if you do an illuminated sign (illuminated from behind) with your font in translucent plastic surrounded by dark opaque plastic then don't have any very sharp points on your font, make all the corners obtuse angles and if you do have any sharp points then round them off or put a chamfer on them because if you don't the sharp corners look horrible.As if it is spraying out light from the corner.I got caught out with this one.2 -
> Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.
Glyphs is doing that automatically for some time, otherwise the TT conversation would not work. It will insert points in corresponding segments even if the other masters do not have an inflection.
> If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:
Nobody told me. I’ll fix this.
> I'd rather get a warning (too) since in tight quarters it can mess up.
I would like to see an example. Converting outlines can go wrong always, inflections or not.1 -
Georg Seifert said:I would like to see an example. Converting outlines can go wrong always, inflections or not.
Another unfortunate outline brittleness is what I call "half-dead" curves: where one end doesn't have a BCP. I find them highly elegant in terms of designing* (especially when adding traps) but there's some badly assumptive software out there that breaks it.
* Like when I'm watering my yard I don't want to have to also be at the other end telling the water how to land.0 -
Georg Seifert said:> If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:
Nobody told me. I’ll fix this.0 -
Inflections are bad m’kay, so, if you make inflections, you’re bad, m’kay, because inflections are bad.0
-
How would you solve a situation where you have an inflection point in one master, but not in the other? I'm working in Glyphs, so the easiest seems to be to just rely on Glyphs' automatic extreme-point handling upon TT generation. However, I gather that the inflection points could also create problems when, for example, a user wants to convert the OT font to a webfont through some online service. I was thinking maybe the bracket trick could help?
0 -
@Jasper de Waard Interesting case. I would put an explicit inflection node in the bottom one, and a corresponding "dummy" one in the top one. However, at some point in the interpolation it's quite likely (mathematically possibly even inescapable) that one of the flanking curves will end up being an inflected curve (without a node).1
-
I had thought this recommendation came from the Type 1 font specification itself, but nope. I suspect it is in Moye’s book on Fontographer.0
-
Hrant I would redo the bold, Your example does not look right to me. It has to be like animation, a character can't drink the magic potion and get instantly fat, but only at certain places... consistency is key.
0 -
0
-
> However, I gather that the inflection points could also create problems when, for example, a user wants to convert the OT font to a webfont through some online service.
If the online service claims to offer support, it should be able to handle such curves. Or you run a filter on export that inserts the inflection points on export.1 -
Is it bad if there are very small inflections, under 5pt? I can't add point to some of my Beziers without breaking the roundness of the design.
Also, is there are difference between inner and outer anchors? Can I get away with leaving the, say, leftmost inner contour of an O without a cardinal anchor? (These are the anschors that are at the very top (North), bottom (South), East etc.)0 -
When the details are so small that adding points would cause problems, don't worry about it.
The original Adobe Type 1 font specification has an example almost exactly like yours, except with the fill reversed, and rotated 90 degrees. They specifically suggest leaving the point off in their example.2 -
Yay!
0 -
This reminds me of something. The interior of a violin has a simple curved shape, but on the outside, there are four corners where triangular wood blocks are put to brace the ribs precisely where there would otherwise be inflection points in their curve.I think it makes sense that when one defines the shape of a letter, one would wish to precisely specify the position of (major, visible) inflection points in that shape, which means they should always be where two arcs join at their ends, never within one.3
-
That’s right, @John Savard. A piece of bent wood (or anything flexible) that bends beyond an inflection becomes hard to control, and the inflection point is the weakness. I use bendy things to demonstrate this in workshops, though of course Bézier curves don’t snap and hit you in the face if you forget.
1 -
...of course Bézier curves don’t snap and hit you in the face if you forget.Wouldn't it be great if they did. From now on, I am going to think of the red arrows in outline audit tools as 'Warning: potential injury to face. Wear protective goggles.'
4
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 798 Font Technology
- 1K Technique and Theory
- 617 Type Business
- 444 Type Design Critiques
- 541 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 483 Typography
- 301 History of Typography
- 114 Education
- 68 Resources
- 498 Announcements
- 79 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 269 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports