Using GlyphMath ↩
Adapted from the original RoboFab documentation.
If they’re compatible, Glyph objects can be used in Python math expression: you can add, subtract, multiply and divide them like normal numbers or variables. The math is applied to the coordinates of each point in the glyph. The result of a GlyphMath operation is a new glyph. You can then insert this glyph in a font, or use it for other math operations.
operation | GlyphMath | description |
---|---|---|
addition | The coordinates of each point are added. | |
subtraction |
The coordinates of each point are subtracted. Note that although the glyph looks unrecognisable, all points are still there. Literally the difference between the two glyphs. |
|
multiplication |
Scaling the glyph up. When you multiply with a tuple like |
|
division |
Scaling the glyph down. When you divide with a tuple like |
|
various | Combination of operations to make a real interpolation. |
You can use GlyphMath to create interpolation effects, transplant transformations from one glyph to another and superimpose several effects at once.
f = CurrentFont()
# two interpolatable, different glyphs
a = f["A"]
b = f["B"]
# multiply works as scaling up
d = a * 2
# or
d = 2 * a
f.insertGlyph(d, name="A.A_times_2")
# # division works as scaling down
d = a / 2
f.insertGlyph(d, name="A.A_divide_2")
# addition: add coordinates of each point
d = a + b
f.insertGlyph(d, name="A.A_plus_B")
# # subtraction: subtract coordinates of each point
d = a - b
f.insertGlyph(d, name="A.A_minus_B")
# combination: interpolation!
d = a + .5 * (b - a)
f.insertGlyph(d, name="A.A_interpolate_B")