4
$\begingroup$

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

enter image description here

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:

enter image description here

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

$\endgroup$
6
  • 1
    $\begingroup$ It's slow but it completes for me after a minute or so. I'm using Mathematica 12.0.0. $\endgroup$
    – Szabolcs
    Feb 11 '20 at 10:13
  • $\begingroup$ But I cant't(SimplifyChinese V12.0 )... $\endgroup$ Feb 11 '20 at 10:46
  • 2
    $\begingroup$ Please be specific about what you meant when you said "I can't". $\endgroup$
    – Szabolcs
    Feb 11 '20 at 11:21
  • $\begingroup$ 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. $\endgroup$ Feb 11 '20 at 11:29
  • $\begingroup$ @DanielLichtblau Thank you very much, but sometimes I can get this figure, sometimes I can't get it all the time. $\endgroup$ Feb 11 '20 at 23:43
8
$\begingroup$
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 :(

$\endgroup$
0
2
$\begingroup$

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.

$\endgroup$
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.