GeometricStep[{hyp1,hyp2,…}]
gives a symbolic representation of a step in the definition of a geometric scene, in which the hypotheses hypi are introduced.
GeometricStep[hyps,label]
labels the step with label when displaying an instance of the geometric scene.
GeometricStep
GeometricStep[{hyp1,hyp2,…}]
gives a symbolic representation of a step in the definition of a geometric scene, in which the hypotheses hypi are introduced.
GeometricStep[hyps,label]
labels the step with label when displaying an instance of the geometric scene.
Details
- The hypi can be any geometric object or hypothesis supported by GeometricScene except another GeometricStep.
- The presence of a GeometricStep adds a menu for selecting stages of a GeometricScene. »
- In a GeometricScene, each GeometricStep is satisfied in order, treating points and scalar quantities introduced in earlier steps as fixed in subsequent steps.
- If list in GeometricScene[…,list] contains both GeometricStep objects and individual hypotheses, each run of individual hypothesis will be grouped in a GeometricStep. »
- By default, GeometricStep[hyps] labels steps according to their position in the list of steps.
Examples
open all close allBasic Examples (2)
Display an interactive scene that constructs, in steps, a square equal in area to a given polygon:
GeometricScene[{{, , , , , , , , , , , , }, {}}, {GeometricStep[{GeometricAssertion[{Polygon[{, , , }]}, "Convex"]}], GeometricStep[{GeometricAssertion[{Polygon[{, , , }]}, "Equiangular", "Clockwise"], Area[Polygon[{, , , }]] == Area[Polygon[{, , , }]]}], GeometricStep[{Line[{, , }], EuclideanDistance[, ] == EuclideanDistance[, ]}], GeometricStep[{ == Midpoint[Line[{, }]]}], GeometricStep[{GeometricAssertion[{Line[{, , }], CircleThrough[{}, ]}, {"Concurrent", }]}], GeometricStep[{GeometricAssertion[{Polygon[{, , , }]}, "Regular"]}]}, {Area[Polygon[{, , , }]] == Area[Polygon[{, , , }]]}]//RandomInstanceLabel the steps in a scene constructing an equilateral triangle from a given line segment:
RandomInstance[GeometricScene[{a, b, c}, {GeometricStep[{Line[{a, b}]}, Row[{"Let ", Line[{a, b}], " be given."}]], GeometricStep[{CircleThrough[{b, c}, a], CircleThrough[{a, c}, b]}, "Draw circles centered at each endpoint passing through the other endpoint."],
GeometricStep[{Triangle[{a, b, c}]}, Row[{Triangle[{a, b, c}], " is equilateral"}]]}]]Scope (1)
Display an interactive scene that constructs, in steps, the bisector of a given angle:
GeometricScene[{{a, b, c, d, e, f}, {}}, {
GeometricStep[{PlanarAngle[{b, a, c}]}],
GeometricStep[{d∈Line[{a, b}]}],
GeometricStep[{e∈Line[{a, c}], EuclideanDistance[a, d] == EuclideanDistance[a, e]}],
GeometricStep[{GeometricAssertion[Triangle[{e, f, d}], "Equilateral"], GeometricAssertion[{{f}, {a}}, {"OppositeSides", Line[{d, e}]}]}],
GeometricStep[{Line[{a, f}]}]
}]//RandomInstanceAdd textual descriptions to each step:
GeometricScene[{{a, b, c, d, e, f}, {}}, {
GeometricStep[{PlanarAngle[{b, a, c}]}, "Let bac be the given angle."],
GeometricStep[{d∈Line[{a, b}]}, "Take a point d on ab."],
GeometricStep[{e∈Line[{a, c}], EuclideanDistance[a, d] == EuclideanDistance[a, e]}, "Find a point e on ac such that ad=ae."],
GeometricStep[{GeometricAssertion[Triangle[{e, f, d}], "Equilateral"], GeometricAssertion[{{f}, {a}}, {"OppositeSides", Line[{d, e}]}]}, "Construct an equilateral triangle efd with base de and with vertex f falling on the opposite side of de from a."],
GeometricStep[{Line[{a, f}]}, "Join af to bisect bac."]
}]//RandomInstanceProperties & Relations (2)
If there is a GeometricStep, consecutive hypotheses are grouped into geometric steps:
GeometricScene[{a, b, c}, {Line[{a, b}], GeometricStep[{CircleThrough[{b, c}, a], CircleThrough[{a, c}, b]}],
Triangle[{a, b, c}], CircleThrough[{a, b, c}]}]The presence of a GeometricStep adds a menu for selecting stages of a GeometricScene:
RandomInstance /@ {GeometricScene[{a, b, c}, {Line[{a, b}], CircleThrough[{b, c}, a], CircleThrough[{a, c}, b],
Triangle[{a, b, c}], CircleThrough[{a, b, c}]}],
GeometricScene[{a, b, c}, {Line[{a, b}], GeometricStep[{CircleThrough[{b, c}, a], CircleThrough[{a, c}, b]}],
Triangle[{a, b, c}], CircleThrough[{a, b, c}]}]}Possible Issues (1)
If constraints are added to objects after the step in which those objects are introduced, the scene may be unsatisfiable:
RandomInstance[GeometricScene[{a, b}, {GeometricStep[{Line[{a, b}]}], GeometricStep[{EuclideanDistance[a, b] == 1}]}]]Adding the constraints to the same step in which the objects are introduced may allow the scene to be satisfiable:
RandomInstance[GeometricScene[{a, b}, {GeometricStep[{Line[{a, b}], EuclideanDistance[a, b] == 1}]}]]Tech Notes
Related Guides
History
Text
Wolfram Research (2020), GeometricStep, Wolfram Language function, https://reference.wolfram.com/language/ref/GeometricStep.html.
CMS
Wolfram Language. 2020. "GeometricStep." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/GeometricStep.html.
APA
Wolfram Language. (2020). GeometricStep. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GeometricStep.html
BibTeX
@misc{reference.wolfram_2026_geometricstep, author="Wolfram Research", title="{GeometricStep}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/GeometricStep.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_geometricstep, organization={Wolfram Research}, title={GeometricStep}, year={2020}, url={https://reference.wolfram.com/language/ref/GeometricStep.html}, note=[Accessed: 12-June-2026]}