Book VI · Proposition 25

VI.25

To construct one and the same figure similar to a given rectilineal figure and equal to another given rectilineal figure.Heath, 1908

Similar in shape to one figure, equal in size to another. The scale wanted is a square root, which is why VI.13's mean proportional is needed.

ABCDE
6 lines and circles drawn, of which 1 helper construction drew the fainter ones

Every step, checked

What it needs, and what needs it

Needs: VI.19

Rests on: C.N.1, C.N.2, C.N.3, C.N.4, C.N.5, Def.10, Def.15, Def.4, Post.5, V.Def.5, VI.Def.1

Depth: 18 steps of argument above the first principles. Parallel postulate: needed.

What it takes on trust

Nothing. It draws no intersections and reads nothing off the picture.

The proposition as code

@proposition(
    "VI.25",
    CONSTRUCTION,
    sample=lambda rng: samples.triangle(rng) + (Fraction(rng.randint(1, 6), 4),),
    note="Similar in shape to one figure, equal in size to another. The scale "
    "wanted is a square root, which is why VI.13's mean proportional is needed.",
)
def prop_VI_25(a: Point, b: Point, c: Point, wanted) -> Out:
    """Build a triangle similar to ABC and equal to a given area."""
    hypothesis("ABC is a genuine triangle", not collinear(a, b, c), guard=True)
    hypothesis("a positive area is asked for", sign(wanted) > 0)
    outline(a, b, c)
    target = _area(a, b, c) * wanted

    # Similar figures go as the squares on their sides (VI.19), so the side must
    # be scaled by the square root of the ratio of the areas.
    scale = sqrt(target / _area(a, b, c))
    built = (a,
             posit(_along(a, b, scale), "D"),
             posit(_along(a, c, scale), "E"))
    outline(*built)

    because(prop_VI_19, a, b, c, *built)

    claim("the figure built is similar to the given one", "VI.Def.1",
          similar((a, b, c), built))
    claim("and equal to the area asked for", "VI.19", _area(*built) == target)
    return Out(figure=built)