next up previous contents index
Next: Approach Up: t1lib_doc Previous: Level 2: Size-Dependent Font   Contents   Index


Stroked Characters

This section is only meant for the reader interested in details about the algorithm used to create stroked versions from outlines intended to be filled. It can help to understand the code I added to type1.c, which may seem a little bit strange.

The basic idea to achieve stroked outlines was to map the stroking operation to a simple filling operation as already implemented by the rasterizer. Why did I choose this approach? Well, the actual reason for doing so was that I felt like doing so. One of the pivotal problems in this context turned out to be the computation of a third order Bezier curve, being located in parallel to a given third order Bezier curve--a problem set which everybody on the net said to be impossible to solve. After some experimenting I had to admit that these people actually were right: It is not possible to solve this problem in general, in particular because tracing a given cubic Bezier spline using a finite pen width might produce delimiting curves which aren't Bezier splines at all. In particular, the angular range and the pen width in relation to the original curve's bend are of importance.

However, under some constraints, which usually are fulfilled by adhering to the Adobe design rules for Type 1 Fonts and by choosing reasonable stroke widths, it is possible to approximate these delimiting curves by cubic Bezier splines.



Subsections
next up previous contents index
Next: Approach Up: t1lib_doc Previous: Level 2: Size-Dependent Font   Contents   Index
2004-10-04