GeometricSolveValues[scene,expr]
solves for the symbolic geometric quantity expr defined by the GeometricScene object scene.
GeometricSolveValues[scene,{expr1,expr2,…}]
returns a list containing the solutions of scene for expr1,expr2, ….
GeometricSolveValues
GeometricSolveValues[scene,expr]
solves for the symbolic geometric quantity expr defined by the GeometricScene object scene.
GeometricSolveValues[scene,{expr1,expr2,…}]
returns a list containing the solutions of scene for expr1,expr2, ….
Details
- If a single quantity is specified, the result is a list of values of the quantity that can occur in valid instances of scene.
- If a list of quantities is specified, the result is a list of lists of values of the quantities that can occur in valid instances of scene. »
- If all point coordinates and quantities in scene are assigned numerical values (such as if scene were returned by RandomInstance), then output will be based solely on those values. »
- If not all point coordinates and quantities in scene are assigned numerical values and expr cannot be determined to be an invariant of the scene, then output may not be numerical. »
- Symbolic representations of coordinates use Indexed. »
Examples
open all close allBasic Examples (3)
Solve for the hypotenuse of a right triangle:
GeometricSolveValues[
GeometricScene[{a, b, c}, {Triangle[{a, b, c}], PlanarAngle[{a, b, c}] == 90°, EuclideanDistance[a, b] == 3, EuclideanDistance[b, c] == 4}],
EuclideanDistance[a, c]
]Compute the area of a specific triangle:
GeometricSolveValues[
GeometricScene[{a, b, c}, {a == {0, 0}, b == {0, 4}, c == {5, 3}, p == Polygon[{a, b, c}]}],
Area[p]
]scene = GeometricScene[{a, b, c, d, e, f}, {PlanarAngle[{b, a, c}] == 90 °, PlanarAngle[{a, c, b}] == 45 °, Line[{a, d, c}], Line[{b, f, c}], Line[{a, e, b}], Line[{e, f}], GeometricAssertion[{Line[{d, f}], Line[{b, c}]}, "Perpendicular"], EuclideanDistance[a, d] == 4, EuclideanDistance[d, c] == 8, EuclideanDistance[a, e] == 10}];Find the area of the quadrilateral
:
GeometricSolveValues[scene, Area[Polygon[{a, e, f, d}]]]Visualize an instance of the scene:
RandomInstance[scene]Scope (6)
Consider a triangle where two of the three vertices are fixed:
scene = GeometricScene[{a, b, c}, {a == {0, 0}, b == {0, 4}, Polygon[{a, b, c}]}];
instance = RandomInstance[scene]Compute the area of the triangle for any position of the third vertex
:
GeometricSolveValues[
scene,
Area[Polygon[{a, b, c}]]
]Compute the area of the particular triangle pictured above:
GeometricSolveValues[
instance,
Area[Polygon[{a, b, c}]]
]Construct an isosceles triangle with the segments from the vertices to the opposite sides forming the inner angles:
scene = GeometricScene[{a, b, c, p, q}, {PlanarAngle[{a, b, c}] == 100 °, EuclideanDistance[a, b] == EuclideanDistance[b, c], Line[{b, p, c}], Line[{a, q, c}], PlanarAngle[{b, a, p}] == 30 °, PlanarAngle[{q, b, c}] == 30 °, Style[PlanarAngle[{a, p, q}], Orange]}];Solve for the measure of the inner angle
:
GeometricSolveValues[scene, PlanarAngle[{a, p, q}]]Visualize an instance of the scene:
RandomInstance[scene]Construct a scene with two triangles embedded inside a third triangle:
scene = GeometricScene[{a, b, c, d, e, p}, {Triangle[{a, b, c}], Line[{a, e, c}], Line[{b, d, c}], Line[{a, p, d}], Line[{b, p, e}], EuclideanDistance[a, e] == 8, EuclideanDistance[e, c] == 2, EuclideanDistance[c, d] == 3, EuclideanDistance[d, b] == 6, Style[Triangle[{e, p, a}], Directive[ RGBColor[0.9, 0.36, 0.054], Opacity[1]]], Style[Triangle[{d, p, b}], Directive[ RGBColor[0.365248, 0.427802, 0.758297], Opacity[1]]]}];
RandomInstance[scene]Solve for a ratio of areas of the two inner triangles:
GeometricSolveValues[scene, Area[Triangle[{e, p, a}]] / Area[Triangle[{d, p, b}]]]Consider a shaded region defined by a square and a circle:
scene = GeometricScene[{a, b, c, d, e, f, g, h}, {s == RegularPolygon[{a, b, c, d}], e == Midpoint[{a, d}], Line[{d, f, g}], g == Midpoint[{b, c}], CircleThrough[{e, f, g}, h], Line[{a, h, b}], p == Style[Polygon[{a, b, g, f, e}], Red]}];
RandomInstance[scene]Compute the fraction of the square covered by the shaded region:
GeometricSolveValues[
scene,
Area[p] / Area[s]
]scene = GeometricScene[{a, b, c, d}, {EuclideanDistance[a, c] == 10, EuclideanDistance[b, d] == 6, EuclideanDistance[d, c] == 5, PlanarAngle[{b, a, d}] == 2 PlanarAngle[{d, a, c}], Line[{b, d, c}], Triangle[{a, b, c}]}];Find the area of the triangle
and the measure, in radians, of the angle
:
GeometricSolveValues[scene, {Area@Triangle[{a, b, c}], PlanarAngle[{c, a, b}]}]RandomInstance[scene]scene = GeometricScene[{a, b, c, d}, {Triangle[{a, b, c}], CircleThrough[{a, b, c}, d], Line[{a, d, c}]}];
RandomInstance[scene]Solve for the point a, the distance between points a and c and the area of the triangle in this scene instance:
GeometricSolveValues[%, {a, EuclideanDistance[a, c], Area[Triangle[{a, b, c}]]}]Solving with a different instance will give different results:
GeometricSolveValues[RandomInstance[scene], {a, EuclideanDistance[a, c], Area[Triangle[{a, b, c}]]}]Properties & Relations (4)
If expr in GeometricSolveValues[scene,expr] is not a list, the result is a list of possible values:
GeometricSolveValues[
GeometricScene[{a, b, c}, {Triangle[{a, b, c}], PlanarAngle[{b, a, c}] == 30°, EuclideanDistance[a, b] == 5, EuclideanDistance[b, c] == 3}],
EuclideanDistance[a, c]
]If expr is a list, even a list of one element, the result is a list of lists of possible values:
GeometricSolveValues[
GeometricScene[{a, b, c}, {Triangle[{a, b, c}], PlanarAngle[{b, a, c}] == 30°, EuclideanDistance[a, b] == 5, EuclideanDistance[b, c] == 3}],
{EuclideanDistance[a, c]}
]Results using coordinates of points are represented with Indexed:
GeometricSolveValues[
GeometricScene[{a, b, c}, {p == Triangle[{a, b, c}]}],
Area[p]
]{Indexed[a, {1}] , Indexed[a, {2}]} //InputFormResults for abstract scenes, even if they uniquely describe the geometry, are based solely on the description:
scene = GeometricScene[{a, b, c}, {a == {1, 0}, b == {1, 1}, c == {4, 1}, Triangle[{a, b, c}]}]GeometricSolveValues[scene, Area[Triangle[{a, b, c}]]]Results for concrete scenes are expressed in terms of the coordinates of the scene:
RandomInstance[scene]GeometricSolveValues[%, Area[Polygon[{a, b, c}]]]Consider a scene featuring a right triangle with its leg lengths specified but its hypotenuse
unknown:
scene = GeometricScene[{{a, b, c}, {h}}, {PolygonAngle[{a, b, c}, a] == 90Degree, EuclideanDistance[a, b] == 1, EuclideanDistance[a, c] == 2, h == EuclideanDistance[b, c]}];
RandomInstance[scene]The subvalue "AlgebraicFormulation" of a GeometricScene object gives a conjunction of constraints for that scene to be valid:
formulation = scene["AlgebraicFormulation"]The hypotenuse
can be solved for using SolveValues on the algebraic formulation or using GeometricSolveValues directly on the scene:
{SolveValues[Exists[{Indexed[a, {1}], Indexed[a, {2}], Indexed[b, {1}], Indexed[b, {2}], Indexed[c, {1}], Indexed[c, {2}]}, formulation], h, Reals], GeometricSolveValues[scene, h]}Possible Issues (1)
Tech Notes
Related Guides
History
Text
Wolfram Research (2024), GeometricSolveValues, Wolfram Language function, https://reference.wolfram.com/language/ref/GeometricSolveValues.html.
CMS
Wolfram Language. 2024. "GeometricSolveValues." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/GeometricSolveValues.html.
APA
Wolfram Language. (2024). GeometricSolveValues. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GeometricSolveValues.html
BibTeX
@misc{reference.wolfram_2026_geometricsolvevalues, author="Wolfram Research", title="{GeometricSolveValues}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/GeometricSolveValues.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_geometricsolvevalues, organization={Wolfram Research}, title={GeometricSolveValues}, year={2024}, url={https://reference.wolfram.com/language/ref/GeometricSolveValues.html}, note=[Accessed: 12-June-2026]}