# How to calculate the degree of $∠FEB$ under this geometric scene

I want to calculate the $$∠FEB$$ in the figure below, but I can't solve this question with GeometricScene function.

What can I do to find the answers to these questions in a general way?

GeometricScene[{"A", "B" -> {-1, 0}, "C" -> {1, 0}, "E",
"F"}, {Triangle[{"A", "B", "C"}],
PlanarAngle[{"B", "A", "C"}] == 20 °,
PlanarAngle[{"A", "B", "C"}] == 80 °,
PlanarAngle[{"A", "C", "B"}] == 80 °, Line[{"A", "F", "B"}],
Line[{"A", "E", "C"}], Triangle[{"E", "B", "F"}],
PlanarAngle[{"E", "B", "F"}] == 20 °,
PlanarAngle[{"E", "C", "F"}] == 30 °}]
RandomInstance[%]
FindGeometricConjectures[%,
PlanarAngle[{__}] == _?NumericQ]["Conclusions"]


After this processing, we can get the figure:

But how to get the degree of $$∠FEB$$.

• It's slow but it completes for me after a minute or so. I'm using Mathematica 12.0.0. Feb 11 '20 at 10:13
• But I cant't(SimplifyChinese V12.0 )... Feb 11 '20 at 10:46
• Please be specific about what you meant when you said "I can't". Feb 11 '20 at 11:21
• The MMA of Simplified Chinese version 12.0 executes the above code and returns the input code as it is. I wonder if there is any better way to solve this problem. Feb 11 '20 at 11:29
• @DanielLichtblau Thank you very much, but sometimes I can get this figure, sometimes I can't get it all the time. Feb 11 '20 at 23:43

FindGeometricConjectures[
RandomInstance[
GeometricScene[{"A", "B" -> {-1, 0}, "C" -> {1, 0}, "E",
"F"}, {Triangle[{"A", "B", "C"}],
PlanarAngle[{"C", "A", "B"}] == 20 °,
PlanarAngle[{"A", "B", "C"}] == 80 °,
PlanarAngle[{"A", "C", "B"}] == 80 °,
Line[{"A", "F", "B"}], Line[{"A", "E", "C"}],
Triangle[{"E", "B", "F"}],
PlanarAngle[{"E", "B", "F"}] == 20 °,
PlanarAngle[{"E", "C", "F"}] == 30 °}]]]


and shows angle BEF to equal 30 degrees.

Apologies for the presentation of my code. I really have no idea how everybody's presentation looks so awesome :(

In your case, you can't get the result of PlanarAngle[{"B", "E", "F"}] == 30\[Degree] because there are two angles that are 30\[Degree]. By the following codes we can see that the result relevant is  PlanarAngle[{"B", "E", "F"}] == PlanarAngle[{"E", "C", "F"}] == 30\[Degree] :

GeometricScene[{"A", "B" -> {-1, 0}, "C" -> {1, 0}, "E",
"F"}, {Triangle[{"A", "B", "C"}],
PlanarAngle[{"B", "A", "C"}] == 20 \[Degree],
PlanarAngle[{"A", "B", "C"}] == 80 \[Degree],
PlanarAngle[{"A", "C", "B"}] == 80 \[Degree], Line[{"A", "F", "B"}],
Line[{"A", "E", "C"}], Triangle[{"E", "B", "F"}],
PlanarAngle[{"E", "B", "F"}] == 20 \[Degree],
PlanarAngle[{"E", "C", "F"}] == 30 \[Degree]}];
t = RandomInstance[%]
FindGeometricConjectures[t]["Conclusions"]


So you can see why FindGeometricConjectures[t, PlanarAngle[{__}] == _?NumericQ]["Conclusions"] doesn't work: the out put is _PlanarAngle == _PlanarAngle ==_ so _PlanarAngle == _ doesn't match, and it's easy to give a general solution to this circumstances: using

     FindGeometricConjectures[t,Equal[_PlanarAngle..,_?NumericQ]]["Conclusions"]


, and it gives

     {PlanarAngle[{"B", "E", "F"}] == PlanarAngle[{"E", "C", "F"}] == 30 \[Degree],
PlanarAngle[{"C", "B", "E"}] == 60 \[Degree]}


as we wanted.

If you're not interested in a proof, but just want to measure the angle in a given instance of a scene:

scene = GeometricScene[{"A", "B" -> {-1, 0}, "C" -> {1, 0}, "E",
"F"}, {Triangle[{"A", "B", "C"}],
PlanarAngle[{"B", "A", "C"}] == 20 °,
PlanarAngle[{"A", "B", "C"}] == 80 °,
PlanarAngle[{"A", "C", "B"}] == 80 °,
Line[{"A", "F", "B"}], Line[{"A", "E", "C"}],
Triangle[{"E", "B", "F"}],
PlanarAngle[{"E", "B", "F"}] == 20 °,
PlanarAngle[{"E", "C", "F"}] == 30 °}]
instance = RandomInstance[scene]


The coordinates of the points can be extracted like this:

instance[[1, 1]]


{"A" -> {1.05443*10^-16, -5.67128}, "B" -> {-1., 0.}, "C" -> {1., 0.}, "E" -> {0.532089, -2.65366}, "F" -> {-0.652704, -1.96962}}

You can measure the angle in a number of different ways:

(TriangleMeasurement[{"B", "E", "F"}, {"InteriorAngle", "E"}]/N[Degree]) /. instance[[1, 1]]

(PlanarAngle["E" -> {"B", "F"}]/N[Degree]) /. instance[[1, 1]]


You can repeat the experiment a number of times with different instances.