# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

Create an interface for constructing a GeometricScene

Contributed by:
Wolfram|Alpha Math Team (Jeremy Stratton-Smith)

ResourceFunction["GeometricSceneConstructor"][] creates an interactive tool for generating a GeometricScene. |

ResourceFunction["GeometricSceneConstructor"] creates an interactive interface that allows users to create primitives and relations among them and then produces the corresponding GeometricScene or RandomInstance expression without the user having to build the code from the ground up.

The interface is broken up into two components, "Figures" and "Relations":

Figures | area for adding primitives such as Line,Circle,Triangle, etc. |

Relations | area for adding relationships among the defined primitives such as "Parallel", "Inside", etc. |

Figures are determined by symbols entered under the "Specifications" column, which accepts symbols and numbers in some cases (radius and angle for example). Additional properties of a given figure can be chosen from the fields under the "Properties" column while the "Styles" column allows users to customize the appearance of particular figures in the output.

To add a relation, the user must first enter one or more figures and then select them from the dialog accessed via the **select figures** button. Once the desired figures are selected, clicking **select relations **opens another dialog which allows for the particular kinds of relations available for the selected figures to be chosen.

Clicking **Print GeometricScene** will print out the symbolic GeometricScene[…] object corresponding to the description provided while clicking **Visualize GeometricScene** will print a cell with RandomInstance[GeometricScene[…]] and evaluate it to show a visualization of the scene.

Note that some properties and relations are mutually exclusive (i.e. if one is selected, selecting another for the same figure/relation will replace that selection with a different option).

Create an interface for constructing GeometricScene expressions:

In[1]:= |

Add some figures, specifying the points and constants as needed:

Click Visualize GeometricScene to create and evaluate code that generates an instance of the scene. Even without any relations, we are able to build interesting scenes:

In[2]:= |

Out[2]= |

Construct famous scenes like Thales's theorem:

In[3]:= |

In[4]:= |

Out[4]= |

Use the "Properties" column to state properties of individual figures:

In[5]:= |

In[6]:= |

Out[6]= |

Construct scenes with constraints or conditions on the figures by introducing relations:

In[7]:= |

In[8]:= |

Out[8]= |

Click on the "Styles" column header to modify the appearance of elements in your scene:

In[9]:= |

In[10]:= |

Out[10]= |

Construct a simple scene and visualize it:

In[11]:= |

In[12]:= |

Out[12]= |

Then use FindGeometricConjectures to draw conclusions from the scene:

In[13]:= |

Out[13]= |

Construct a geometric scene with a numerical value for an angle:

In[14]:= |

In[15]:= |

Out[15]= |

Use the resource function GeometricSolve to compute the numerical value of another angle from the scene and confirm that it is the same value as the opposite angle:

In[16]:= |

Out[16]= |

In[17]:= |

Out[17]= |

This work is licensed under a Creative Commons Attribution 4.0 International License