*Please download the attached notebook at the end of the discussion for V12*

Dan's blog on automated plane geometry is about a quite fansinating application of new features of V12. This discussion is mainly to show how to make `GeometricScene`

components as building blocks to give you insights to solve challenging geometric problems. Also because the components in this example is quite limited, I hope it serves as beginner case for Wolfram Language users who are interested in applying this feature in teaching and research.

- AOPS Problem: In triangle
$ABC$ let point
$D$ be on side
$BC$. If
$AD=7$,
$\angle BAD=15$ deg, and
$\angle CAD = 30$ deg, compute the minimum possible area of the triangle.

Without further due, lets just start with these very straightforward lines:

`RandomInstance`

offers a second argument to generate a list of geometric objects that satifies the given concitions

Use the following line to find the area of the triangles above:

In[ ]:= (Area[Triangle[{"A","B","C"}]]/.(#["Points"]))&/@objs1
Out[ ]= {22.0393,21.6971,82.0575,18.1804,90.0952,18.8076,50.7958,25.823}

Lets try more triangles, like 20, and see where is the minimum value even we haven't analyze the problem at all:

We can graphically conclude that the minimum value is around 17.93. (Pretty good approximation comparing to the true solution later)

Next we consider adding some constraints to the `GeometricScences`

so the illustrations of the valid triangle ABC's are aligned in regularzied manner. Well by the precision of WL and flexibility of MS OneNote, I quitck notice the following works:

I appriciate that the `GeometricScene`

function gives a mixture of cartesian-coordinate based programming and `Geogebra`

-style freedom. Just modify the first argument in `GeometricScene`

and make 10 instances of valid ABC:

Looking at the the instances, you probably have some insights of the problem. The variation of the area of ABC is by

- fix the angle BAC=45 degree and its two side rays
- rotate a line
$l$ that cross point D

$B$,
$C$ is then determined by the intersections of rays and
$l$. To find how this rotation affects the area, we can parameterize
$\angle ABC = \theta$ and the area of ABC. This is valid because
$\angle ABD$ is uniquely defined by
$\angle ADC$, which can be interpred as a measure of the rotation of
$l$.

Comparing to the `objs2`

, we successfully sort the triangles based on the angular size of
$\angle ABC$, from 10 degree to 110 degree with increment of 10. Lets plot the area vs
$\angle ABC$ on a finer segmentation of angle values:

Remember that all codes that you have written is just `gs1`

plus some plot functions and parameter modification. Almost zero computation but finding the coordinate of
$D$. This is way simpler than we used to do with `Graphics`

function.

Let's compare our result to the analytic solution:

**Attachments:**