Tutorial - Handbook

Inverse Constructions


An special feature of GEObject is the possibility of implementing Inverse Contructions.
A direct construction takes some primitive elements and use them to build the final object.
An inverse construction starts from the final object, and rebuilds the primitive elements, using specific algorithms; it's not always possible to realize this procedure: it depends on the nature of the problem. Some problems don't have an inverse construction, and some others have more than one.

To better understand this unusual and important potentiality of GEObject, here is an example.


Middle point inverse construction

Given a segment, it's possible to construct its middle point, simply using the appropriate option in the Interaction Methods Popup.

This method constructs two circles having center in each end, and radius the segment length, and after intersecting the two circles, and build the line connecting the points of intersection; the intersection between this line and the segment is the mid point.
With this method, the resulting object is a segment with mid point, and has the following characteristics:

You might now want to be able to translate the mid point, and to modify the segment according to its movement.
To have this characteristic, it's necessary to construct the object segment with mid point in another way: starting from the end point A and the mid point itself, we construct the end point B'.
It's necessary to build a circle having center in the mid point, and radius the distance from the end point A to the mid point, and to build a line passing throught the mid point and the end point A; the intersection between this line and the circle is the other end point B' of the segment.
Now, it's necessary to make the new end point B' coincident with the previously existent one B in the same point of the screen, and to redo all the construction starting from the mid point and the end point B.

All this construction procedure is easy to understand looking at the Petri Net.
The portion of the net inside the dotted line, is conceptually redundant but necessary for implementative reasons. With the new release of the program, it will not be necessary anymore.