Proportional Area Divisions & ∛100 (Metrica Book III)

Exact Mean-Proportional Compass Cuts Carrying Zero “Millet-Seed” Error — Codex Reference: Metrica Book III (Preface & Props. 1–23): Proportional Divisions of Figures, Justice & ∛100

Interactive Construction (metrica-iii-area-division.svg)

Hover or click any element—given triangle ABC, vertex cevian AV (\(5 : 3\)), semicircle altitude PR, compass transfer circle (AR), or parallel division ADE vs. DECB (\(3 : 1\))—to inspect Hero’s Metrica III.1–2 constructions:

Hero Metrica III.1–2 — Vertex (5:3) & Parallel Mean-Proportional (3:1) Area Division ( M1 A ): (x - 5/2)**2 + (y - 6)**2 - 169/4 = 0 ( A R ): (x - 5)**2 + (y - 12)**2 - (15/4 + 3*sqrt(3))**2 - (9 - 5*sqrt(3)/4)**2 = 0 [ B C ]: y = 0 [ A B ]: 12*x - 5*y = 0 [ C A ]: -12*x - 9*y + 168 = 0 [ M N ]: y - 12 + 6*sqrt(3) = 0 / A V /: |seg| = 3*sqrt(281)/4 / P R /: |seg| = 13*sqrt(3)/4 / D E /: |seg| = 7*sqrt(3) B = (0, 0) C = (14, 0) A = (5, 12) V = (35/4, 0) P = (5/4, 3) R = (5/4 - 3*sqrt(3), 5*sqrt(3)/4 + 3) D = (5 - 5*sqrt(3)/2, 12 - 6*sqrt(3)) E = (5 + 9*sqrt(3)/2, 12 - 6*sqrt(3)) B C A V P R D E

Exact Symbolic Verification on (13, 14, 15)

On Hero’s canonical estate ABC of total area \(84\):

  • Proposition III.1 (Vertex Cut in 5 : 3): Point V \(= \left(\frac{35}{4}, 0\right)\) partitions \(BC = 14\) into \(BV = 8\frac{3}{4}\) and \(VC = 5\frac{1}{4}\), giving exact sub-areas \(\frac{105}{2} = 52\frac{1}{2}\) and \(\frac{63}{2} = 31\frac{1}{2}\).

  • Proposition III.2 (Parallel Cut in 3 : 1): Marking P at \(\frac{3}{4}\) along AB and erecting perpendicular PR to the semicircle on AB constructs R with exact mean-proportional quadrance:

    \[Q(A, D) = Q(A, R) = \frac{3}{4} \times 13^2 = \frac{507}{4} = 126\frac{3}{4}, \qquad |AD| = \frac{13\sqrt{3}}{2}.\]

    Drawing DE parallel to BC yields \(\text{Area}(\triangle ADE) = 63\) and \(\text{Area}(DECB) = 21\) (\(63 : 21 = 3 : 1\) identically in \(\mathbb{Q}(\sqrt{3})\)).

Executable Python API

import sympy as sp
        from geometor.heron import construct_area_division

        model, inv = construct_area_division(m_ratio=3, n_ratio=1)
        assert inv["ad_quadrance"] == sp.Rational(507, 4)
        assert inv["area_ade"] == 63 and inv["area_decb"] == 21