(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "NeXT Mathematica Notebook Front End Version 2.2"; NeXTStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, L1, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L1, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L1, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L1, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-4, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-4, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R32768, L-4, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-4, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B32768, L-4, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L1, 12, "Courier"; ; fontset = name, inactive, noPageBreakInGroup, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, B65535, L1, 10, "Times"; ; fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = leftheader, 12; fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, L1, 12; fontset = leftfooter, 12; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; paletteColors = 128; automaticGrouping; currentKernel; ] :[font = title; inactive; preserveAspect; startGroup] Overview of Descartes-Geometry by Denis Monasse Mathsoft Overseas :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Availability :[font = text; inactive; preserveAspect; endGroup] 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 ;[s] 7:0,0;74,1;76,2;131,3;132,4;186,5;198,6;354,-1; 7:1,16,12,Times,0,18,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,16,12,Times,0,18,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,16,12,Times,0,18,0,0,0;1,16,12,Times,2,18,0,0,0;1,16,12,Times,0,18,0,0,0; :[font = subsection; inactive; preserveAspect; startGroup] Introduction :[font = text; inactive; preserveAspect; endGroup] 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 :[font = subsection; inactive; preserveAspect; startGroup] Constructions :[font = text; inactive; preserveAspect] In this chapter, we illustrate a few classical constructions. :[font = subsubsection; inactive; preserveAspect; startGroup] Tangents :[font = text; inactive; preserveAspect] 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. ;[s] 7:0,0;11,1;15,2;16,3;17,4;18,5;19,6;190,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] tg=c.c1 Draw[Blue,PointSize[.02],{a,"A"},{c,"C"},c1, Red,tg,Interval->{{-1,2},{-1,2}}]; :[font = output; output; inactive; preserveAspect] {STRAIGHT[1/3 + (2*5^(1/2))/3, 2^(1/2) - 10^(1/2)/9, -19/9], STRAIGHT[-1/3 + (2*5^(1/2))/3, -2^(1/2) - 10^(1/2)/9, 19/9]} ;[o] 1 2 Sqrt[5] Sqrt[10] 19 {STRAIGHT[- + ---------, Sqrt[2] - --------, -(--)], 3 3 9 9 1 2 Sqrt[5] Sqrt[10] 19 STRAIGHT[-(-) + ---------, -Sqrt[2] - --------, --]} 3 3 9 9 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 281; pictureHeight = 307; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1.09486 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.371385 0.347576 0.373644 0.347576 [ [(A)] 0.37139 0.37364 -1 -1 Msboxa [(C)] 0.48724 0.86519 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1.09486 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.37139 0.37364 Mdot [(A)] 0.37139 0.37364 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.48724 0.86519 Mdot [(C)] 0.48724 0.86519 -1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.37139 0.37364 0.34758 0 365.73 arc stroke 1 0 0 setrgbcolor gsave 0.36861 1.0688 moveto 0.97619 0.02607 lineto stroke 0.02381 0.5614 moveto 0.79784 1.0688 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 1.09486 lineto 0 1.09486 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] Intersections :[font = text; inactive; preserveAspect] 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. ;[s] 5:0,0;11,1;17,2;19,3;21,4;137,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] {POINT[(19*(1/3 + (2*5^(1/2))/3))/ (9*((1/3 + (2*5^(1/2))/3)^2 + (2^(1/2) - 10^(1/2)/9)^2)), (19*(2^(1/2) - 10^(1/2)/9))/ (9*((1/3 + (2*5^(1/2))/3)^2 + (2^(1/2) - 10^(1/2)/9)^2))], POINT[(-19*(-1/3 + (2*5^(1/2))/3))/ (9*((-1/3 + (2*5^(1/2))/3)^2 + (-2^(1/2) - 10^(1/2)/9)^2)), (-19*(-2^(1/2) - 10^(1/2)/9))/ (9*((-1/3 + (2*5^(1/2))/3)^2 + (-2^(1/2) - 10^(1/2)/9)^2))]} ;[o] 1 2 Sqrt[5] 19 (- + ---------) 3 3 {POINT[--------------------------------------------, 1 2 Sqrt[5] 2 Sqrt[10] 2 9 ((- + ---------) + (Sqrt[2] - --------) ) 3 3 9 Sqrt[10] 19 (Sqrt[2] - --------) 9 --------------------------------------------], 1 2 Sqrt[5] 2 Sqrt[10] 2 9 ((- + ---------) + (Sqrt[2] - --------) ) 3 3 9 POINT[ 1 2 Sqrt[5] -19 (-(-) + ---------) 3 3 ------------------------------------------------, 1 2 Sqrt[5] 2 Sqrt[10] 2 9 ((-(-) + ---------) + (-Sqrt[2] - --------) ) 3 3 9 Sqrt[10] -19 (-Sqrt[2] - --------) 9 ------------------------------------------------]} 1 2 Sqrt[5] 2 Sqrt[10] 2 9 ((-(-) + ---------) + (-Sqrt[2] - --------) ) 3 3 9 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 277; pictureHeight = 303; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1.09486 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.371385 0.347576 0.373644 0.347576 [ [(A)] 0.37139 0.37364 -1 -1 Msboxa [(C)] 0.48724 0.86519 -1 -1 Msboxa [(it1)] 0.6717 0.54863 -1 -1 Msboxa [(it2)] 0.18083 0.66433 1 -1 Msboxa [ 0 0 0 0 ] [ 1 1.09486 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.37139 0.37364 Mdot [(A)] 0.37139 0.37364 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.48724 0.86519 Mdot [(C)] 0.48724 0.86519 -1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.37139 0.37364 0.34758 0 365.73 arc stroke gsave 0.36861 1.0688 moveto 0.97619 0.02607 lineto stroke 0.02381 0.5614 moveto 0.79784 1.0688 lineto stroke grestore 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.6717 0.54863 Mdot [(it1)] 0.6717 0.54863 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.18083 0.66433 Mdot [(it2)] 0.18083 0.66433 1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 1.09486 lineto 0 1.09486 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] Perpendicular Bisector :[font = text; inactive; preserveAspect] 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: ;[s] 13:0,0;40,1;42,2;191,3;193,4;282,5;284,6;388,7;392,8;409,9;411,10;425,11;430,12;432,-1; 13:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] STRAIGHT[(-12*5^(1/2))/19, 40^(1/2)/19, 0] ;[o] -12 Sqrt[5] Sqrt[40] STRAIGHT[-----------, --------, 0] 19 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 283; pictureHeight = 310; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1.09486 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.371385 0.347576 0.373644 0.347576 [ [(A)] 0.37139 0.37364 -1 -1 Msboxa [(C)] 0.48724 0.86519 -1 -1 Msboxa [(it1)] 0.6717 0.54863 -1 -1 Msboxa [(it2)] 0.18083 0.66433 1 -1 Msboxa [(d4)] 0.54517 1.03404 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1.09486 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.37139 0.37364 Mdot [(A)] 0.37139 0.37364 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.48724 0.86519 Mdot [(C)] 0.48724 0.86519 -1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.37139 0.37364 0.34758 0 365.73 arc stroke gsave 0.36861 1.0688 moveto 0.97619 0.02607 lineto stroke 0.02381 0.5614 moveto 0.79784 1.0688 lineto stroke grestore 0.6717 0.54863 moveto 0.18083 0.66433 lineto stroke gsave 0.02 setlinewidth 0.6717 0.54863 Mdot [(it1)] 0.6717 0.54863 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.18083 0.66433 Mdot [(it2)] 0.18083 0.66433 1 -1 Mshowa grestore 1 0 0 setrgbcolor 0.28946 0.02607 moveto 0.53523 1.0688 lineto stroke gsave 0 setlinewidth 0.54517 1.03404 Mdot [(d4)] 0.54517 1.03404 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 1.09486 lineto 0 1.09486 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] Straight line through points :[font = text; inactive; preserveAspect] 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. ;[s] 7:0,0;74,1;76,2;108,3;112,4;168,5;171,6;173,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] STRAIGHT[-40^(1/2)/19, (-12*5^(1/2))/19, (3*40^(1/2))/19] ;[o] -Sqrt[40] -12 Sqrt[5] 3 Sqrt[40] STRAIGHT[---------, -----------, ----------] 19 19 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 363; pictureHeight = 242; endGroup; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 0.66667 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.333333 0.31746 [ [(A)] 0.34127 0.33333 -1 -1 Msboxa [(it1)] 0.61556 0.49316 -1 -1 Msboxa [(it2)] 0.16723 0.59883 1 -1 Msboxa [(d5)] 0.88095 0.42857 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 0.666667 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.34127 0.33333 Mdot [(A)] 0.34127 0.33333 -1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.34127 0.33333 0.31746 0 365.73 arc stroke gsave 0.02 setlinewidth 0.61556 0.49316 Mdot [(it1)] 0.61556 0.49316 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.16723 0.59883 Mdot [(it2)] 0.16723 0.59883 1 -1 Mshowa grestore 1 0 0 setrgbcolor 0.02381 0.63264 moveto 0.97619 0.40816 lineto stroke gsave 0.02 setlinewidth 0.88095 0.42857 Mdot [(d5)] 0.88095 0.42857 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 0.66667 lineto 0 0.66667 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup] Test :[font = text; inactive; preserveAspect] 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: ;[s] 12:0,0;18,1;171,2;172,3;177,4;178,5;216,6;218,7;265,8;267,9;292,10;295,11;297,-1; 12:1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] OfQ[{a,c},d4] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] True ;[o] True :[font = subsection; inactive; preserveAspect; startGroup] Images :[font = text; inactive; preserveAspect] 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. ;[s] 3:0,0;28,1;29,2;261,-1; 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a point :[font = text; inactive; preserveAspect] The symmetric of C with respect to A is C' defined by ;[s] 7:0,0;17,1;18,2;35,3;36,4;40,5;42,6;54,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] ci1=c/a Draw[Blue,PointSize[.04],{a,"A"},{c,"C"}, Red,{ci1,"C'"}]; :[font = output; output; inactive; preserveAspect] POINT[-1/3, -2^(1/2)] ;[o] 1 POINT[-(-), -Sqrt[2]] 3 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 84; pictureHeight = 351; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 4.24264 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 1.42857 2.12132 1.42857 [ [(A)] 0.5 2.12132 -1 -1 Msboxa [(C)] 0.97619 4.14163 -1 -1 Msboxa [(C')] 0.02381 0.10102 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 4.24264 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.04 setlinewidth 0.5 2.12132 Mdot [(A)] 0.5 2.12132 -1 -1 Mshowa grestore gsave 0.04 setlinewidth 0.97619 4.14163 Mdot [(C)] 0.97619 4.14163 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.04 setlinewidth 0.02381 0.10102 Mdot [(C')] 0.02381 0.10102 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 4.24264 lineto 0 4.24264 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a straightline :[font = text; inactive; preserveAspect] The image of the point C with respect to the straight line d5 is C' ;[s] 6:0,0;22,1;24,2;59,3;61,4;65,5;67,-1; 6:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] POINT[-1/57, -2^(1/2)/19] ;[o] 1 -Sqrt[2] POINT[-(--), --------] 57 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureTop = 1; pictureWidth = 342; pictureHeight = 167; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 0.49622 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.0354439 0.31746 [ [(C)] 0.44709 0.4844 -1 -1 Msboxa [(d5)] 0.88095 0.13068 -1 -1 Msboxa [(C')] 0.3357 0.01181 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 0.496215 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.44709 0.4844 Mdot [(C)] 0.44709 0.4844 -1 -1 Mshowa grestore 0.004 setlinewidth 0.02381 0.33475 moveto 0.97619 0.11027 lineto stroke gsave 0 setlinewidth 0.88095 0.13068 Mdot [(d5)] 0.88095 0.13068 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.3357 0.01181 Mdot [(C')] 0.3357 0.01181 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 0.49622 lineto 0 0.49622 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a circle :[font = text; inactive; preserveAspect] 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. ;[s] 9:0,0;25,1;26,2;54,3;56,4;75,5;77,6;127,7;130,8;132,-1; 9:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] POINT[3/19, (9*2^(1/2))/19] ;[o] 3 9 Sqrt[2] POINT[--, ---------] 19 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 304; pictureHeight = 304; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.34127 0.31746 [ [(A)] 0.34127 0.34127 -1 -1 Msboxa [(C)] 0.44709 0.79023 -1 -1 Msboxa [(it1)] 0.61556 0.5011 -1 -1 Msboxa [(it2)] 0.16723 0.60677 1 -1 Msboxa [(d5)] 0.88095 0.43651 -1 -1 Msboxa [(C')] 0.3914 0.55393 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.34127 0.34127 Mdot [(A)] 0.34127 0.34127 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.44709 0.79023 Mdot [(C)] 0.44709 0.79023 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.61556 0.5011 Mdot [(it1)] 0.61556 0.5011 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.16723 0.60677 Mdot [(it2)] 0.16723 0.60677 1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.34127 0.34127 0.31746 0 365.73 arc stroke gsave 0.33873 0.97619 moveto 0.89367 0.02381 lineto stroke 0.02381 0.51276 moveto 0.73078 0.97619 lineto stroke grestore 0.02381 0.64057 moveto 0.97619 0.4161 lineto stroke gsave 0 setlinewidth 0.88095 0.43651 Mdot [(d5)] 0.88095 0.43651 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.3914 0.55393 Mdot [(C')] 0.3914 0.55393 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect] 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. ;[s] 10:0,0;25,1;27,2;28,3;69,4;70,5;105,6;107,7;121,8;123,9;125,-1; 10:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] CIRCLE[1/6, 2^(-1/2), 19^(1/2)/6] ;[o] 1 1 Sqrt[19] CIRCLE[-, -------, --------] 6 Sqrt[2] 6 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureTop = 1; pictureWidth = 311; pictureHeight = 311; endGroup; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.34127 0.31746 [ [(A)] 0.34127 0.34127 -1 -1 Msboxa [(C)] 0.44709 0.79023 -1 -1 Msboxa [(it1)] 0.61556 0.5011 -1 -1 Msboxa [(it2)] 0.16723 0.60677 1 -1 Msboxa [(d5)] 0.88095 0.43651 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.34127 0.34127 Mdot [(A)] 0.34127 0.34127 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.44709 0.79023 Mdot [(C)] 0.44709 0.79023 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.61556 0.5011 Mdot [(it1)] 0.61556 0.5011 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.16723 0.60677 Mdot [(it2)] 0.16723 0.60677 1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.34127 0.34127 0.31746 0 365.73 arc stroke gsave 0.33873 0.97619 moveto 0.89367 0.02381 lineto stroke 0.02381 0.51276 moveto 0.73078 0.97619 lineto stroke grestore 0.02381 0.64057 moveto 0.97619 0.4161 lineto stroke gsave 0.02 setlinewidth 0.88095 0.43651 Mdot [(d5)] 0.88095 0.43651 -1 -1 Mshowa grestore 1 0 0 setrgbcolor newpath 0.39418 0.56575 0.23063 0 365.73 arc stroke grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsection; inactive; preserveAspect; startGroup] Test :[font = text; inactive; preserveAspect] 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: ;[s] 12:0,0;18,1;171,2;172,3;177,4;178,5;216,6;218,7;265,8;267,9;292,10;295,11;297,-1; 12:1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] OfQ[{a,c},d4] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] True ;[o] True :[font = subsection; inactive; preserveAspect; startGroup] Images :[font = text; inactive; preserveAspect] 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. ;[s] 3:0,0;28,1;29,2;261,-1; 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a point :[font = text; inactive; preserveAspect] The symmetric of C with respect to A is C' defined by ;[s] 7:0,0;17,1;18,2;35,3;36,4;40,5;42,6;54,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] ci1=c/a Draw[Blue,PointSize[.04],{a,"A"},{c,"C"}, Red,{ci1,"C'"}]; :[font = output; output; inactive; preserveAspect] POINT[-1/3, -2^(1/2)] ;[o] 1 POINT[-(-), -Sqrt[2]] 3 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 84; pictureHeight = 351; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 4.24264 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 1.42857 2.12132 1.42857 [ [(A)] 0.5 2.12132 -1 -1 Msboxa [(C)] 0.97619 4.14163 -1 -1 Msboxa [(C')] 0.02381 0.10102 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 4.24264 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.04 setlinewidth 0.5 2.12132 Mdot [(A)] 0.5 2.12132 -1 -1 Mshowa grestore gsave 0.04 setlinewidth 0.97619 4.14163 Mdot [(C)] 0.97619 4.14163 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.04 setlinewidth 0.02381 0.10102 Mdot [(C')] 0.02381 0.10102 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 4.24264 lineto 0 4.24264 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a straightline :[font = text; inactive; preserveAspect] The image of the point C with respect to the straight line d5 is C' ;[s] 6:0,0;22,1;24,2;59,3;61,4;65,5;67,-1; 6:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] POINT[-1/57, -2^(1/2)/19] ;[o] 1 -Sqrt[2] POINT[-(--), --------] 57 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureTop = 1; pictureWidth = 342; pictureHeight = 167; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 0.49622 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.0354439 0.31746 [ [(C)] 0.44709 0.4844 -1 -1 Msboxa [(d5)] 0.88095 0.13068 -1 -1 Msboxa [(C')] 0.3357 0.01181 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 0.496215 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.44709 0.4844 Mdot [(C)] 0.44709 0.4844 -1 -1 Mshowa grestore 0.004 setlinewidth 0.02381 0.33475 moveto 0.97619 0.11027 lineto stroke gsave 0 setlinewidth 0.88095 0.13068 Mdot [(d5)] 0.88095 0.13068 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.3357 0.01181 Mdot [(C')] 0.3357 0.01181 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 0.49622 lineto 0 0.49622 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = subsubsection; inactive; preserveAspect; startGroup] With respect to a circle :[font = text; inactive; preserveAspect] 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. ;[s] 9:0,0;25,1;26,2;54,3;56,4;75,5;77,6;127,7;130,8;132,-1; 9:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] POINT[3/19, (9*2^(1/2))/19] ;[o] 3 9 Sqrt[2] POINT[--, ---------] 19 19 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 304; pictureHeight = 304; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.34127 0.31746 [ [(A)] 0.34127 0.34127 -1 -1 Msboxa [(C)] 0.44709 0.79023 -1 -1 Msboxa [(it1)] 0.61556 0.5011 -1 -1 Msboxa [(it2)] 0.16723 0.60677 1 -1 Msboxa [(d5)] 0.88095 0.43651 -1 -1 Msboxa [(C')] 0.3914 0.55393 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.34127 0.34127 Mdot [(A)] 0.34127 0.34127 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.44709 0.79023 Mdot [(C)] 0.44709 0.79023 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.61556 0.5011 Mdot [(it1)] 0.61556 0.5011 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.16723 0.60677 Mdot [(it2)] 0.16723 0.60677 1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.34127 0.34127 0.31746 0 365.73 arc stroke gsave 0.33873 0.97619 moveto 0.89367 0.02381 lineto stroke 0.02381 0.51276 moveto 0.73078 0.97619 lineto stroke grestore 0.02381 0.64057 moveto 0.97619 0.4161 lineto stroke gsave 0 setlinewidth 0.88095 0.43651 Mdot [(d5)] 0.88095 0.43651 -1 -1 Mshowa grestore 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.3914 0.55393 Mdot [(C')] 0.3914 0.55393 -1 -1 Mshowa grestore grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect] 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. ;[s] 10:0,0;25,1;27,2;28,3;69,4;70,5;105,6;107,7;121,8;123,9;125,-1; 10:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; startGroup] 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}}]; :[font = output; output; inactive; preserveAspect] CIRCLE[1/6, 2^(-1/2), 19^(1/2)/6] ;[o] 1 1 Sqrt[19] CIRCLE[-, -------, --------] 6 Sqrt[2] 6 :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureTop = 1; pictureWidth = 311; pictureHeight = 311; endGroup; endGroup; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.34127 0.31746 0.34127 0.31746 [ [(A)] 0.34127 0.34127 -1 -1 Msboxa [(C)] 0.44709 0.79023 -1 -1 Msboxa [(it1)] 0.61556 0.5011 -1 -1 Msboxa [(it2)] 0.16723 0.60677 1 -1 Msboxa [(d5)] 0.88095 0.43651 -1 -1 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave grestore gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.34127 0.34127 Mdot [(A)] 0.34127 0.34127 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.44709 0.79023 Mdot [(C)] 0.44709 0.79023 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.61556 0.5011 Mdot [(it1)] 0.61556 0.5011 -1 -1 Mshowa grestore gsave 0.02 setlinewidth 0.16723 0.60677 Mdot [(it2)] 0.16723 0.60677 1 -1 Mshowa grestore 0.004 setlinewidth newpath 0.34127 0.34127 0.31746 0 365.73 arc stroke gsave 0.33873 0.97619 moveto 0.89367 0.02381 lineto stroke 0.02381 0.51276 moveto 0.73078 0.97619 lineto stroke grestore 0.02381 0.64057 moveto 0.97619 0.4161 lineto stroke gsave 0.02 setlinewidth 0.88095 0.43651 Mdot [(d5)] 0.88095 0.43651 -1 -1 Mshowa grestore 1 0 0 setrgbcolor newpath 0.39418 0.56575 0.23063 0 365.73 arc stroke grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath % End of Graphics MathPictureEnd ^*)