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

Constructions

In this chapter, we illustrate a few classical constructions.

Tangents

The symbol Dot (.) has different meanings according to the nature of the arguments. When the arguments are a point and a circle, it returns the tangents to the circle issued from the point.

tg=c.c1
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},c1,
     Red,tg,Interval->{{-1,2},{-1,2}}];

Intersections

The symbol Times or * defines any intersection. We use it to find the contact points of the tangents we have just found with the circle.

it=(tg*c1)//Flatten
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},c1,tg,
     Red,{it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     Interval->{{-1,2},{-1,2}}];

Perpendicular Bisector

The perpendicular bisector of a segment ab is the straight line which cuts the segment in its middle and at right angle. It is noted
                                                        a + b
We determine the perpendi cular bisector of the segment which joins the contact points it. Here, the points are not defined independently as previously but in a list and therefore the operator Plus has to replace (@@) the operator List:

d4=Plus@@it
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},
     c1,tg,LINE@@it,
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     Red,d4,PointSize[0],{POINT[.5,1.9],"d4"},
     Interval->{{-1,2},{-1,2}}];

Straight line through points

This is how to write the straight line passing through the contact points it. The remark about the operator Plus in the previous section is valid here for the operator Dot.

d5=Dot@@it
Draw[Blue,PointSize[.02],{a,"A"},c1,
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     Red,d5,PointSize[0],{POINT[1.7,0.3],"d5"},
     Interval->{{-1,2},{-1,2}}];

Test

Descartes-Geometry has a number of functions which test the rigorous validity of given properties such as alignment, concentricity, parallelism, etc. Here, we verify that A and C belong to the perpendicular bisector d4 of the segment which joins the contact points it using the test function OfQ:

OfQ[{a,c},d4]

Images

Any object may be mirrored (/) in any other object which remains invariant in the operation. The image is given by a symmetry when the invariant is a point or a straight line, or by an inversion when the invariant is a circle. Let us envisage the three cases.

With respect to a point

The symmetric of C with respect to A is C' defined by

ci1=c/a
Draw[Blue,PointSize[.04],{a,"A"},{c,"C"},
     Red,{ci1,"C'"}];

With respect to a straightline

The image of the point C with respect to the straight line d5 is C'

ci2=c/d5
Draw[Blue,PointSize[.02],{c,"C"},
     d5,PointSize[0],{POINT[1.7,0.3],"d5"},
     Red,PointSize[.02],{ci2,"C'"},
     Interval->{{-1,2},{-1,2}}];

With respect to a circle

The inverse of the point C with respect to the circle c1 lies on the polar d5, the straight line which joins the contact points it.

ci3=c/c1
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     c1,tg,
     d5,PointSize[0],{POINT[1.7,0.3],"d5"},
     Red,PointSize[.02],{ci3,"C'"},
     Interval->{{-1,2},{-1,2}}];

The inverse of the polar d5 is the circle passing through the center A of the circle, the contact points it and the point C.

di=d5/c1
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     c1,tg,
     d5,{POINT[1.7,0.3],"d5"},
     Red,di,
     Interval->{{-1,2},{-1,2}}];

Test

Descartes-Geometry has a number of functions which test the rigorous validity of given properties such as alignment, concentricity, parallelism, etc. Here, we verify that A and C belong to the perpendicular bisector d4 of the segment which joins the contact points it using the test function OfQ:

OfQ[{a,c},d4]

Images

Any object may be mirrored (/) in any other object which remains invariant in the operation. The image is given by a symmetry when the invariant is a point or a straight line, or by an inversion when the invariant is a circle. Let us envisage the three cases.

With respect to a point

The symmetric of C with respect to A is C' defined by

ci1=c/a
Draw[Blue,PointSize[.04],{a,"A"},{c,"C"},
     Red,{ci1,"C'"}];

With respect to a straightline

The image of the point C with respect to the straight line d5 is C'

ci2=c/d5
Draw[Blue,PointSize[.02],{c,"C"},
     d5,PointSize[0],{POINT[1.7,0.3],"d5"},
     Red,PointSize[.02],{ci2,"C'"},
     Interval->{{-1,2},{-1,2}}];

With respect to a circle

The inverse of the point C with respect to the circle c1 lies on the polar d5, the straight line which joins the contact points it.

ci3=c/c1
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     c1,tg,
     d5,PointSize[0],{POINT[1.7,0.3],"d5"},
     Red,PointSize[.02],{ci3,"C'"},
     Interval->{{-1,2},{-1,2}}];

The inverse of the polar d5 is the circle passing through the center A of the circle, the contact points it and the point C.

di=d5/c1
Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},
     {it[[1]],"it1"},{it[[2]],"it2",{1,-1}},
     c1,tg,
     d5,{POINT[1.7,0.3],"d5"},
     Red,di,
     Interval->{{-1,2},{-1,2}}];