22 Sep 2004 nomis   » (Master)


raph wrote:

Also, two cubic Beziers can intersect at up to nine points, while I think it may be true that two Cornu spiral segments each traversing no more than 180 degrees of arc intersect at no more than two points.

This is a little bit unfair :-). If you limit bezier segments to traverse no more than 180 degrees of arc, the number of possible intersections goes most probably down (I managed to get four intersections easily, I doubt that it is possible to have more, but I might be wrong here).

Unless I misunderstood you, your assumption about a maximum of two intersections for two (180°-angle) cornu segments is wrong. Have a look at this image which shows three intersections. Since I don't have a tool to easily create cornu segments I used the image at mathworld for the shape of the cornu segment. The second segments (red) are flipped and 90°-rotated versions of the first segments.

Can you point me to some more in-depth literature? My knowledge is basically limited to the mathworld entry and I am curious on the parameter set used to pick a certain segment of the cornu spiral.

The ease of affine transformations for bezier segments basically stems from the fact, that all points on a segment are a linear (even convex) combination of the control points. I wonder how to transfer at least some of this ease to cornu segments. You really want to render your font correctly at any angle and you really want to be able to scale your font in X- and Y- direction independantly (especially when you want to adjust your font for small sizes to compensate the press gain). It is not at all obvious how to choose the parameters for cornu segments to be able to handle these needs.

In your diary entry from august 13th you mentioned a presentation from siggraph. Interesting read. I think this would be awesome for interpolating the coordinates of a quick mouse movement which sometimes result in jaggy brush strokes with a paint tool


It might be worth to think about a "global" optimizing step in the Y-direction (i.e. try to align baseline, x-height and ascent (of the capital letters) for a certain font size. So you'd avoid uneven base lines and still get more crisp bars. Maybe its just me (or the font...) but the Times example in your whitepaper gives a little "picket fence" impression. The Helvetica sample looks better, but of course Helvetica has a more uniform line width and the sample *has* a focussed capital-ascender.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!