Book VI · Proposition 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.
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.
Nothing. It draws no intersections and reads nothing off the picture.
@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)