Overview of Descartes-Geometry

by

Denis Monasse

Mathsoft Overseas

Availability

Descartes is a registered trade mark of Mathsoft Overseas, Inc. Copyright Ó 1992, by Mathsoft Overseas, Inc.

The program Descartesâ-Geometry is available on any platform at 30 % of the Mathematica price. 

For information and orders, please contact:
Mathsoft Overseas, cp 641, 1211 Geneva 3 (Switzerland). 
Tel: 41 22 / 346 52 60. Fax: 41 22 / 346 59 39

Introduction

In the seventeenth century, two french mathematicians, Pierre de Fermat and Ren Descartes, realized that algebra and geometry could be unified in a single science that was called analytic geometry. In fact, the recognition for the foundation of the new science went to Descartes although Fermat's work was a little earlier. The reason is due to the formalism used by Descartes who adopted the notation of modern algebra whereas Fermat had kept the cumbersome greek notations. Today, we can resume the treatment of analytic geometry in the context of the modern computers and information languages among which Mathematica is especially well adapted with its outstanding graphics facilities and its functional programming.
				Let us start

Famous theorems and their animation

We shall illustrate the functions of Descartes-Geometry on famous theorems such as Pappus, Euler circle and Morley. The geometric figure which illustrates the theorem is built frame by frame and this way the animation of the sequence of frames gives a dynamic feeling of the theorem.

Pappus

Let us consider
-  the points A and B, the straight line d1 passing through A and B, P a point on d1, 
- a point C and a straight line s passing through C,
- the straight lines PC and AC.
E is the intersection with s of the straight line passing through  B and parallel to  PC, 
F is the intersection with s of the straight line passing through  B and parallel to  AC, 
then AE is parallel to PF. 

  We have used the points A, B, C previously defined. P and s are randomly generated so that many different configurations can be contemplated by activating the same cell.

p=ParameterPoint[d1,Random[]];
s=c.POINT[];
pc=p.c;
ac=a.c;
bpc=b.pc;
bac=b.ac;
e=bpc*s; 
f=bac*s;
range=
{{Min[a[[1]],b[[1]],c[[1]],p[[1]],e[[1]],f[[1]]]-1,
  Max[a[[1]],b[[1]],c[[1]],p[[1]],e[[1]],f[[1]]]+1},
 {Min[a[[2]],b[[2]],c[[2]],p[[2]],e[[2]],f[[2]]]-1,
  Max[a[[2]],b[[2]],c[[2]],p[[2]],e[[2]],f[[2]]]+1}}//N;
l[0]={Blue,PointSize[.02],{a,"A"},{b,"B"},d1};
ae=a.e;
pf=p.f;
l[1]={{c,"C"},s};
l[2]={{p,"P"},pc,ac};
l[3]={Green,{e,"E"},{f,"F"},bpc,bac};
l[4]={Red,ae,pf};
Draw[#,
     Interval->range,
     PlotRange->range]&/@
FoldList[Join[#1,#2]&,l[0],Array[l,4]]

This is a first configuration

then a second configuration

Euler circle

In any triangle, nine points: 
- the pedals, 
- the mid-points of each side, 
- the mid-points of the segments which join each vertex to the orthocenter,
are located on a same circle 

The figure is based on the geometric functions used for the triangle ABC.
The pedals are the projections (>) of each vertex onto the opposite sides:

pr=Table[m[i]>d[i],{i,0,2}];
ht=Table[LINE[m[i],pr[[i+1]]],{i,0,2}];
oc=Orthocenter@@tr;

The next three points are the middles (MidPoint) of each side:

mp1=Table[MidPoint[m[i],m[Mod[i+1,3]]],{i,0,2}];

The last three points are the middles of the segments which join each vertex to the orthocenter (Orthocenter) of the triangle

mp2=Table[MidPoint[m[i],oc],{i,0,2}];

The nine point circle is defined as the circle circumscribed (CircumCircle) to the pedals. It is drawn with the triangle and the nine points:

range=
{{Min[a[[1]],b[[1]],c[[1]]]-1,
  Max[a[[1]],b[[1]],c[[1]]]+1},
 {Min[a[[2]],b[[2]],c[[2]]]-1,
  Max[a[[2]],b[[2]],c[[2]]]+1}}//N;
l[0]={Black,{a,"A",{1,-1}},{b,"B"},{c,"C"},tr};
l[1]={Blue,PointSize[.02],{oc,"H"},pr,ht};
l[2]={Green,mp1};
l[3]={Red,mp2};
l[4]={Blue,CircumCircle@@pr};
Draw[#,
     PlotRange->range]&/@
FoldList[Join[#1,#2]&,l[0],Array[l,4]];

Morley

Morley's theorem is difficult to prove and concerns a problem which cannot be solved with ruler and compass: the trisection of an angle. It states that:

   The intersections of the adjacent trisectors of a triangle are the vertices of an equilateral 
			triangle.
			
The construction still uses the method of the geometric functions. The program provides the facility of cutting an angle into n equal parts (XSectors). There are 2(n-1) straight lines: n-1 outer (tx) and n-1 inner (ux) x-sectors. Here n is equal to 3, the last argument of the command after ux. Numerical evaluation (N) has been applied to speed up the calculations. As we are not immediately interested in the drawing of the lines, the option LogicalDraw is set to False and we keep the third element [[3]] of the output list which contains the analytic expression of the trisectors in the form of substitution rules

xs=Table[(XSectors[d[i]//N,d[i+1]//N,
                  {tx[i],ux[i],3},
                  LogicalDraw->False]//N)[[3]],
         {i,0,2}]//Flatten;

The intersections qx are those of the first trisector of an angle with the second trisector of the following angle:

qx[i_]:=ux[i//N][1//N]*ux[Mod[i+1,3]//N][2//N]/.xs

Last comes the preparation of the figure.

l[0]={Black,{a,"A",{1,-1}},{b,"B"},{c,"C"},tr};
l[1]={Blue,Table[{LINE[m[i],qx[i],m[Mod[i+2,3]]]},
       {i,0,2}]};
l[2]={Red,POLYGON[qx[0],qx[1],qx[2]]};
Draw[#,
     PlotRange->range]&/@
FoldList[Join[#1,#2]&,l[0],Array[l,2]];