geometor.durer.typography¶
Exact symbolic compass-and-straightedge typography from Book III of Underweysung der Messung.
Implements Albrecht Dürer’s 1525 Nuremberg geometric constructions for:
Roman *Antiqua* Capitals (Book III, pp. 115–135) inside the
10 x 10squareABCD(with thick stroke width1 = 1/10of the square side and thin stroke width1/3), in direct mathematical dialogue with Luca Pacioli’s Divina Proportione (1509,1:9grid):construct_durer_roman_letter_A: Inclined thin/thick legs, inner triangular counter, sub-midline crossbar, and circular serif fillets (Ausschweiffung) of radii10/7(outer) and1/2(inner).construct_durer_roman_letter_O: Dürer’s two-circle diagonal-shift construction alongCB(y = x), where two congruent circles of exact radius5 - sqrt(2)/4separated by unit stroke distance|FG| = 1form both the outer contour and inner counter.construct_durer_roman_letter_Q: ExtendsOalong anti-diagonalAD(x + y = 10) with Dürer’s sweeping circular tail through cornerD = (10, 0).
Modular Gothic *Textura* Minuscules (Book III, pp. 136–141):
construct_durer_textura_minuscules: Constructsi,n, andmstrictly from stacked unit squares (rechte fierungen) capped by45°diamond squares (ort fierungen) anchored at exact1/3division points—an early discrete modular grid system.
Classes¶
Exact symbolic construction of Dürer's Roman Antiqua capital |
|
Exact symbolic construction of Dürer's Roman Antiqua |
|
Exact modular construction of Dürer's Gothic Textura minuscules |
Functions¶
|
Construct Dürer's Roman capital |
|
Construct Dürer's Roman capital |
|
Construct Dürer's Roman capital |
|
Construct Dürer's modular Textura minuscules |
Module Contents¶
- class geometor.durer.typography.RomanLetterAResult¶
Exact symbolic construction of Dürer’s Roman Antiqua capital
Ain a10 x 10square.- model: geometor.model.Model¶
- square_corners: tuple[sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point]¶
- thick_stroke: sympy.Integer¶
- thin_stroke: sympy.Rational¶
- outer_serif_radius: sympy.Rational¶
- inner_serif_radius: sympy.Rational¶
- counter_triangle: tuple[sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point]¶
- crossbar_quad: tuple[sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point]¶
- serif_centers: dict[str, sympy.geometry.Point]¶
- class geometor.durer.typography.RomanLetterOQResult¶
Exact symbolic construction of Dürer’s Roman Antiqua
OorQin a10 x 10square.- letter: str¶
- model: geometor.model.Model¶
- square_corners: tuple[sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point, sympy.geometry.Point]¶
- center_i: sympy.geometry.Point¶
- shifted_center_f: sympy.geometry.Point¶
- shifted_center_g: sympy.geometry.Point¶
- bowl_radius: sympy.Expr¶
- circle_f: sympy.geometry.Circle¶
- circle_g: sympy.geometry.Circle¶
- crossover_points: tuple[sympy.geometry.Point, sympy.geometry.Point]¶
- tail_points: tuple[sympy.geometry.Point, ...]¶
- class geometor.durer.typography.TexturaMinusculesResult¶
Exact modular construction of Dürer’s Gothic Textura minuscules
i,n,m.- model: geometor.model.Model¶
- stem_width: sympy.Integer¶
- stacked_square_count: int¶
- diamond_side: sympy.Expr¶
- glyph_polygons: dict[str, list[tuple[tuple[sympy.Expr, sympy.Expr], ...]]]¶
- geometor.durer.typography.construct_durer_roman_letter_A(model: geometor.model.Model | None = None) RomanLetterAResult¶
Construct Dürer’s Roman capital
Ainside the10 x 10squareABCD.Dürer labels the framing square (rechte fierung)
atop-left(0, 10),btop-right(10, 10),cbottom-left(0, 0),dbottom-right(10, 0), with midlinesef(vertical) andgh(horizontal), thick stroke1(1/10of10), thin stroke1/3, outer foot serifs of radius10/7, and inner foot serifs of radius1/2.
- geometor.durer.typography.construct_durer_roman_letter_O(model: geometor.model.Model | None = None) RomanLetterOQResult¶
Construct Dürer’s Roman capital
Oinside the10 x 10square.
- geometor.durer.typography.construct_durer_roman_letter_Q(model: geometor.model.Model | None = None) RomanLetterOQResult¶
Construct Dürer’s Roman capital
Qinside the10 x 10square.
- geometor.durer.typography.construct_durer_textura_minuscules(model: geometor.model.Model | None = None) TexturaMinusculesResult¶
Construct Dürer’s modular Textura minuscules
i,n, andmfrom unit squares.In Book III (p. 136), Dürer constructs
ifirst because nearly the entire Gothic minuscule alphabet is generated combinatorially from its modular stem. Forn(two stems) andm(three stems), adjacent stems touch corner-to-corner at their45°diamond caps! Wait: look at the spacing when adjacent top diamonds touch corner-to-corner: Top diamond of stem 1 has right corner atx0 + 1/3 + sqrt(2)/2and left corner atx0 + 1/3 - sqrt(2)/2, so corner-to-corner contact spaces consecutive stems by exact pitchsqrt(2)(leaving interior counter gapsqrt(2) - 1 ≈ 0.414 < 1, matching Dürer’s exact words: “so wirt das felt schlemer zwischen den zügen dann ein zug des pustaben preyt ist”!).