# Symbolic formula from GeometricScene?

I'm trying to solve the following problem with GeometricScene

What is the shortest circular arc of which the altitude above its chord is one?

I have the following code:

GeometricScene[
{
{a -> {0, 0}, b -> {0, r}, c -> {0, r - 1}, d},
{r, l}
},
{
GeometricAssertion[{Line[{b, c}], Line[{c, d}]}, "Perpendicular"],
GeometricAssertion[{Circle[a, r], Line[{c, d}]}, {"Concurrent", d}],
l == 2 r PlanarAngle[a -> {c, d}]
}
]


from which I get random instances like this

Is there any way to get a formula for l in terms of r? I know that I can substitute values of r into the scene and then use l /. RandomInstance[scene]["Quantities"] to get a numeric answer, but can this be done symbolically?

Obviously one can do the geometry by hand, but referring specifically to GeometricScene, does it have these capabilities?

• There's currently no way to express l in terms of r through GeometricScene. Under the hood it finds instances of a scene through numerical methods. Commented Jun 16, 2019 at 19:06
• @Chip Hurst ah okay, that's a little disappointing but maybe it's something the developers are working on. At the very least it'd be nice to get some kind of numeric function object out of GeometricScene for things like this so that passing it to one of the optimization functions could be easier/more efficient. Commented Jun 16, 2019 at 23:04
• seems like a good idea. I’ll pass this along to the development team. Commented Jun 17, 2019 at 1:02

## 2 Answers

ResourceFunction["GeometricSolve"][
GeometricScene[{{a -> {0, 0}, b -> {0, r}, c -> {0, r - 1}, d}, {r,
l}}, {GeometricAssertion[{Line[{b, c}], Line[{c, d}]},
"Perpendicular"],
GeometricAssertion[{Circle[a, r], Line[{c, d}]}, {"Concurrent",
d}]}], 2 r PlanarAngle[a -> {c, d}]]


This is a much simpler problem than for GeometricScene.

Here my solution with Manipulate.

Manipulate[
With[{alp := ArcSin[(d - 1)/d]},
Graphics[{{White, Circle[{0, 0}, 5]}, Circle[{0, 0}, d],
Point[{0, d Sin[alp]}],
Point[{0, d}], {EdgeForm[Thick], White,
Triangle[{{0, 0}, {-d Cos[alp], d Sin[alp]}, {d Cos[alp],
d Sin[alp]}}]}, Line[{{0, d Sin[alp]}, {0, d}}],
Text[Style[1, 16], {-0.15, d - 0.5}], {EdgeForm[Thick], Red,
Circle[{0, 0},
d, {alp - \[Pi]/2 + \[Pi]/2, -alp + \[Pi]}]}}]], {d, 1, 5}]


There is only one parameter-free. The restriction makes this two-dimensional appearing problem one-dimensional.

Every equivalent to Manipulate creates the video or gif or animation.