From 2b78310f0905e1d7cc9f1e8234019ca5c43c0323 Mon Sep 17 00:00:00 2001
From: "mathieu.schiess@edu.ge.ch" <mathieu.schiess@posteo.ch>
Date: Thu, 16 Jan 2025 00:00:22 +0100
Subject: [PATCH] =?UTF-8?q?corrige=20des=20images=20qui=20=C3=A9taient=20a?=
 =?UTF-8?q?u=20format=20eps?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../imgs_chap5/img_exo_2spirales (copie 1).py |  52 ++
 Notebooks/imgs_chap5/img_exo_2spirales.eps    | 399 +++++++++++++
 Notebooks/imgs_chap5/img_exo_2spirales.png    | Bin 11773 -> 2518 bytes
 .../imgs_chap5/img_exo_carres (copie 1).py    |  44 ++
 Notebooks/imgs_chap5/img_exo_carres.eps       | 372 ++++++++++++
 Notebooks/imgs_chap5/img_exo_carres.png       | Bin 11784 -> 2075 bytes
 .../imgs_chap5/img_exo_spirale (copie 1).py   |  41 ++
 Notebooks/imgs_chap5/img_exo_spirale.eps      | 390 ++++++++++++
 Notebooks/imgs_chap5/img_exo_spirale.png      | Bin 11663 -> 2086 bytes
 .../imgs_chap5/img_exo_triangles (copie 1).py |  46 ++
 Notebooks/imgs_chap5/img_exo_triangles.eps    | 558 ++++++++++++++++++
 Notebooks/imgs_chap5/img_exo_triangles.png    | Bin 14630 -> 5251 bytes
 12 files changed, 1902 insertions(+)
 create mode 100644 Notebooks/imgs_chap5/img_exo_2spirales (copie 1).py
 create mode 100644 Notebooks/imgs_chap5/img_exo_2spirales.eps
 create mode 100644 Notebooks/imgs_chap5/img_exo_carres (copie 1).py
 create mode 100644 Notebooks/imgs_chap5/img_exo_carres.eps
 create mode 100644 Notebooks/imgs_chap5/img_exo_spirale (copie 1).py
 create mode 100644 Notebooks/imgs_chap5/img_exo_spirale.eps
 create mode 100644 Notebooks/imgs_chap5/img_exo_triangles (copie 1).py
 create mode 100644 Notebooks/imgs_chap5/img_exo_triangles.eps

diff --git a/Notebooks/imgs_chap5/img_exo_2spirales (copie 1).py b/Notebooks/imgs_chap5/img_exo_2spirales (copie 1).py
new file mode 100644
index 0000000..a7470e6
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_2spirales (copie 1).py	
@@ -0,0 +1,52 @@
+from turtle import *
+
+speed(0)
+WIDTH, HEIGHT = 500, 500
+
+screen = Screen()
+screen.setup(WIDTH + 4, HEIGHT + 8)  # fudge factors due to window borders & title bar
+
+
+penup()
+for k in range(21):
+    goto(-500+k*50,-500)
+    pendown()
+    goto(-500+k*50,500)
+    penup()
+for k in range(20):
+    goto(-500,-500+k*50)
+    pendown()
+    goto(500,-500+k*50)
+    penup()
+
+goto(0, -100)
+pendown()
+width(5)
+
+
+color("blue")
+right(90)
+
+x = 50
+for _ in range(3):
+    forward(x)
+    right(90)
+    x = x + 100
+
+color("red")
+x = x - 100
+for _ in range(5):
+    forward(x)
+    right(90)
+    x = x - 50
+
+shape('turtle')
+color("black")
+left(90)
+penup()
+goto(0, -100)
+
+ts = getscreen()
+ts.getcanvas().postscript(file="img_exo_2spirales.eps")
+
+done()
\ No newline at end of file
diff --git a/Notebooks/imgs_chap5/img_exo_2spirales.eps b/Notebooks/imgs_chap5/img_exo_2spirales.eps
new file mode 100644
index 0000000..dfa5670
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_2spirales.eps
@@ -0,0 +1,399 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Tk Canvas Widget
+%%For: mathieu
+%%Title: Window .!canvas
+%%CreationDate: Wed Jan 15 22:25:01 2025
+%%BoundingBox: 117 206 495 586
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%Orientation: Portrait
+%%EndComments
+
+%%BeginProlog
+% This is a standard prolog for Postscript generated by Tk's canvas
+% widget.
+/CurrentEncoding [
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven
+/eight/nine/colon/semicolon/less/equal/greater/question
+/at/A/B/C/D/E/F/G
+/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W
+/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+/grave/a/b/c/d/e/f/g
+/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w
+/x/y/z/braceleft/bar/braceright/asciitilde/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
+/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
+] def
+50 dict begin
+/baseline 0 def
+/stipimage 0 def
+/height 0 def
+/justify 0 def
+/lineLength 0 def
+/spacing 0 def
+/stipple 0 def
+/strings 0 def
+/xoffset 0 def
+/yoffset 0 def
+/tmpstip null def
+/baselineSampler ( TXygqPZ) def
+baselineSampler 0 196 put
+/cstringshow {{ dup type /stringtype eq { show } { glyphshow } ifelse } forall } bind def
+/cstringwidth {0 exch 0 exch { dup type /stringtype eq { stringwidth } { currentfont /Encoding get exch 1 exch put (\001) stringwidth } ifelse exch 3 1 roll add 3 1 roll add exch } forall } bind def
+/ISOEncode {dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding CurrentEncoding def currentdict end /Temporary exch definefont } bind def
+/StrokeClip {{strokepath} stopped { (This Postscript printer gets limitcheck overflows when) = (stippling dashed lines;  lines will be printed solid instead.) = [] 0 setdash strokepath} if clip } bind def
+/EvenPixels {dup 0 matrix currentmatrix dtransform dup mul exch dup mul add sqrt dup round dup 1 lt {pop 1} if exch div mul } bind def
+/StippleFill {/tmpstip 1 index def 1 EvenPixels dup scale pathbbox 4 2 roll 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll 6 index exch { 2 index 5 index 3 index { gsave 1 index exch translate 5 index 5 index true matrix tmpstip imagemask grestore } for pop } for pop pop pop pop pop } bind def
+/AdjustColor {CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } if } bind def
+/DrawText {/stipple exch def /justify exch def /yoffset exch def /xoffset exch def /spacing exch def /strings exch def /lineLength 0 def strings { cstringwidth pop dup lineLength gt {/lineLength exch def} {pop} ifelse newpath } forall 0 0 moveto baselineSampler false charpath pathbbox dup /baseline exch def exch pop exch sub /height exch def pop newpath translate rotate lineLength xoffset mul strings length 1 sub spacing mul height add yoffset mul translate justify lineLength mul baseline neg translate strings { dup cstringwidth pop justify neg mul 0 moveto stipple { gsave /char (X) def { dup type /stringtype eq { { char 0 3 -1 roll put currentpoint gsave char true charpath clip StippleText grestore char stringwidth translate moveto } forall } { currentfont /Encoding get exch 1 exch put currentpoint gsave (\001) true charpath clip StippleText grestore (\001) stringwidth translate moveto } ifelse } forall grestore } {cstringshow} ifelse 0 spacing neg translate } forall } bind def
+/TkPhotoColor {gsave 32 dict begin /tinteger exch def /transparent 1 string def transparent 0 tinteger put /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /crpp newdict /Decode get length 2 idiv def /str w string def /pix w crpp mul string def /substrlen 2 w log 2 log div floor exp cvi def /substrs [ { substrlen string 0 1 substrlen 1 sub { 1 index exch tinteger put } for /substrlen substrlen 2 idiv def substrlen 0 eq {exit} if } loop ] def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put olddict /DataSource get str readstring pop pop /tail str def /x 0 def olddict /DataSource get pix readstring pop pop { tail transparent search dup /done exch not def {exch pop exch pop} if /w1 exch length def w1 0 ne { newdict /DataSource pix x crpp mul w1 crpp mul getinterval put newdict /Width w1 put mat 4 x neg put /x x w1 add def newdict image /tail tail w1 tail length w1 sub getinterval def } if done {exit} if tail substrs { anchorsearch {pop} if } forall /tail exch def tail length 0 eq {exit} if /x w tail length sub def } loop } for end grestore } bind def
+/TkPhotoMono {gsave 32 dict begin /dummyInteger exch def /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /pix w 7 add 8 idiv string def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put 0.000 0.000 0.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask 1.000 1.000 1.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask } for end grestore } bind def
+%%EndProlog
+%%BeginSetup
+/CL 2 def
+%%EndSetup
+
+%%Page: 1 1
+save
+306.0 396.0 translate
+0.75 0.75 scale
+2 -253 translate
+-253 506 moveto 249 506 lineto 249 0 lineto -253 0 lineto closepath clip newpath
+gsave
+grestore
+gsave
+grestore
+gsave
+-250 -249 moveto
+-250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 -249 moveto
+-200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-150 -249 moveto
+-150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-100 -249 moveto
+-100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-50 -249 moveto
+-50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 -249 moveto
+0 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+50 -249 moveto
+50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+100 -249 moveto
+100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+150 -249 moveto
+150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+200 -249 moveto
+200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+250 -249 moveto
+250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 1 moveto
+500 1 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 51 moveto
+500 51 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 101 moveto
+500 101 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 151 moveto
+500 151 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 201 moveto
+500 201 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 251 moveto
+500 251 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 301 moveto
+500 301 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 351 moveto
+500 351 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 401 moveto
+500 401 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 451 moveto
+500 451 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 501 moveto
+500 501 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 151 moveto
+3.06161699786838e-15 101 lineto
+-150 101 lineto
+-150 351 lineto
+1 setlinecap
+1 setlinejoin
+5 setlinewidth
+[] 0 setdash
+0.000 0.000 1.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-150 351 moveto
+99.9999999999999 351 lineto
+100 151 lineto
+-50 151 lineto
+-50 251 lineto
+-4.2632564145606e-14 251 lineto
+1 setlinecap
+1 setlinejoin
+5 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+grestore
+gsave
+16 151 moveto
+14 153 lineto
+10 152 lineto
+7 155 lineto
+9 158 lineto
+8 160 lineto
+5 157 lineto
+0.999999999999997 158 lineto
+-3 156 lineto
+-6 159 lineto
+-8 157 lineto
+-5 155 lineto
+-7 151 lineto
+-5 147 lineto
+-8 145 lineto
+-6 143 lineto
+-3 146 lineto
+1 144 lineto
+5 145 lineto
+8 142 lineto
+9 144 lineto
+7 147 lineto
+10 150 lineto
+14 149 lineto
+16 151 lineto
+0.000 0.000 0.000 setrgbcolor AdjustColor
+eofill
+16 151 moveto
+14 153 lineto
+10 152 lineto
+7 155 lineto
+9 158 lineto
+8 160 lineto
+5 157 lineto
+0.999999999999997 158 lineto
+-3 156 lineto
+-6 159 lineto
+-8 157 lineto
+-5 155 lineto
+-7 151 lineto
+-5 147 lineto
+-8 145 lineto
+-6 143 lineto
+-3 146 lineto
+1 144 lineto
+5 145 lineto
+8 142 lineto
+9 144 lineto
+7 147 lineto
+10 150 lineto
+14 149 lineto
+16 151 lineto
+1 setlinejoin 1 setlinecap
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+restore showpage
+
+%%Trailer
+end
+%%EOF
diff --git a/Notebooks/imgs_chap5/img_exo_2spirales.png b/Notebooks/imgs_chap5/img_exo_2spirales.png
index dfa5670fdf4c64955da3544ef33861af0164e329..cc7ff525152e5463d3486e0fe766d7a3df171254 100644
GIT binary patch
literal 2518
zcmeAS@N?(olHy`uVBq!ia0y~yV60+bV65R_W?*3Wrrxlhfq_9G*(1o8fuTx`fuW&=
zf#DYe14F|L28L1t28LG&3=CE?7#PG0=IjczVPIf59N-h;`v3ob1~6!6sOw_zn#ExM
znSt*=1H(E7hW`u<rx?usgBkO|YDguD7#Ntq$PR2^A_GGU$cW=$BiAu7d}Cmk4`xFw
zVdwyJb~CsLGQ2Bi=;&Z5XJGg*!oa}Hz`)ADFq45{H%L1x14BLo0|x`cI|hc`|NsBj
z58nThfq_A<B*-tAq2sv1ornD$$6em+7Tj;VRq&e2m%shLm403Py8C<Rk?nu}UYfsu
z{q&CG-}k5O7VKZ;2{Mr}$=lt9p@UV{gMop8v%n*=n1O)-#P(otJDF|Az`(#>;_2(k
z{*sYj%u4d$*Mf2e2KHN?E{-7;x8B~pStcFI;1X!bV<geUdxViG@mNo8+YC*f|Np~1
zxV)dRmWr=i;V)h~|LNSzqLHV+osL}_rmnu4GkwOVML|qQb-S1ENd0()ZFlkWltYrs
z_N<uVQ2Ohp#=GyyHc&Z{?K<-wO*<NVXH!L2w3vV4=|`G*k#vxZ;<YuFeK%WaKrBb{
z@Y)U2rydQSTW8kw`>zE3ypQApP>^eXzw=pt&ki~J>%wuH?QG|M(o+9=Y0~ogpSNA-
zbKZ_#ULN<>?0eaEo9o>BINtBxd3^WXNco?!@1N}Z|M24C*1Bu+b!&djKD%+M?Dyl7
zN|)EG@!x#8b(7!vg1K=kHx&&=BFZvf;<lgvp6@wKrMqVS`?4c+?!S{WlYiAcc;jdP
zdj47GvZ}RfE^Egu4_~!ra1wJ0e}%`{zI$6bx32!&vU`tHckRvVdpS3JckXigZ*!}b
z-G05U_R5vyzw=G@y;k?%|DfEq;#b`@|L12e-<I2SSvzF;^&NieLn3z$S|Tt%`L<vF
z?(aNR($UNB&y8!@ZvVfXe~#aN>$!FHR(p??RxLesYCwszCV%f<KgVyMvOIjn#h2&x
z_0E}Jc|H5-{ff``9=5;v!ewgp_vq87NB>qIjy`<*J<s9h!~8d2ie{DkVxNBaY1)sw
zmEZqC)cuS6f6w0B##W~Cgx~sr+b{X=cYpcE{`;l<pNzjB)#v|vt?jRVXJz@dm-FZS
z`|$JQ%I>puQgw1|@yGT*`|#4WVz=?G%j^F?%y#qBKXiNU$Jg?I-&b9pTjl-#faLx!
zSAIw4?+MO-dAUElvi^|aKVPM~Uw6-c?Vs<H|6}LA%l`Ez-sW$f|M%PP<jeV+=hppl
z&imh1T>AO={P21EAC^?TRa|fO|K8QC((ey{u3hQ3-uB7;%hoIW*4w5mzdzq^eL&c{
z%i2?>zW&0M`qXN#6DT>+M`-uVhdLEi-*a=0+s&8%&Sm<_wIcqE!Qbhp=idA2`{nA#
z?f-wxep>e+fnN0qT7e3!!`6sD{HoFZdszpl8XTyq4&*fLH>s%~Lzd6){lz_@{?+{s
zW6>@K1_tF4*NBpWVk?i#pwwcg{L;LX%)E4`{0atRbBhXN3j=LKLvw8-12glb|Fanw
w804VJeNxL(a~J}GbsbaklTvk!^$ZkT1A^T^jN9`>y+N%QPgg&ebxsLQ08XmaU;qFB

literal 11773
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
N^HR7}RbBnvxB#waZnFRY

diff --git a/Notebooks/imgs_chap5/img_exo_carres (copie 1).py b/Notebooks/imgs_chap5/img_exo_carres (copie 1).py
new file mode 100644
index 0000000..4c8828b
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_carres (copie 1).py	
@@ -0,0 +1,44 @@
+from turtle import *
+
+speed(0)
+WIDTH, HEIGHT = 500, 500
+
+screen = Screen()
+screen.setup(WIDTH + 4, HEIGHT + 8)  # fudge factors due to window borders & title bar
+
+
+penup()
+for k in range(21):
+    goto(-500+k*50,-500)
+    pendown()
+    goto(-500+k*50,500)
+    penup()
+for k in range(20):
+    goto(-500,-500+k*50)
+    pendown()
+    goto(500,-500+k*50)
+    penup()
+
+# pour positionner le curseur en bas à gauche
+penup()
+goto(-200, -200)
+pendown()
+
+# mettre le bon style de trait
+width(5)
+color("red")
+
+def carre(longueur):
+    for _ in range(4):
+        forward(longueur)
+        left(90)
+# à compléter avec maximum 5 lignes
+x = 50
+for _ in range(8):
+    carre(x)
+    x = 50 + x
+
+ts = getscreen()
+ts.getcanvas().postscript(file="img_exo_carres.eps")
+
+done()
\ No newline at end of file
diff --git a/Notebooks/imgs_chap5/img_exo_carres.eps b/Notebooks/imgs_chap5/img_exo_carres.eps
new file mode 100644
index 0000000..1e0fedb
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_carres.eps
@@ -0,0 +1,372 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Tk Canvas Widget
+%%For: mathieu
+%%Title: Window .!canvas
+%%CreationDate: Wed Jan 15 23:09:17 2025
+%%BoundingBox: 117 206 495 586
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%Orientation: Portrait
+%%EndComments
+
+%%BeginProlog
+% This is a standard prolog for Postscript generated by Tk's canvas
+% widget.
+/CurrentEncoding [
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven
+/eight/nine/colon/semicolon/less/equal/greater/question
+/at/A/B/C/D/E/F/G
+/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W
+/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+/grave/a/b/c/d/e/f/g
+/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w
+/x/y/z/braceleft/bar/braceright/asciitilde/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
+/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
+] def
+50 dict begin
+/baseline 0 def
+/stipimage 0 def
+/height 0 def
+/justify 0 def
+/lineLength 0 def
+/spacing 0 def
+/stipple 0 def
+/strings 0 def
+/xoffset 0 def
+/yoffset 0 def
+/tmpstip null def
+/baselineSampler ( TXygqPZ) def
+baselineSampler 0 196 put
+/cstringshow {{ dup type /stringtype eq { show } { glyphshow } ifelse } forall } bind def
+/cstringwidth {0 exch 0 exch { dup type /stringtype eq { stringwidth } { currentfont /Encoding get exch 1 exch put (\001) stringwidth } ifelse exch 3 1 roll add 3 1 roll add exch } forall } bind def
+/ISOEncode {dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding CurrentEncoding def currentdict end /Temporary exch definefont } bind def
+/StrokeClip {{strokepath} stopped { (This Postscript printer gets limitcheck overflows when) = (stippling dashed lines;  lines will be printed solid instead.) = [] 0 setdash strokepath} if clip } bind def
+/EvenPixels {dup 0 matrix currentmatrix dtransform dup mul exch dup mul add sqrt dup round dup 1 lt {pop 1} if exch div mul } bind def
+/StippleFill {/tmpstip 1 index def 1 EvenPixels dup scale pathbbox 4 2 roll 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll 6 index exch { 2 index 5 index 3 index { gsave 1 index exch translate 5 index 5 index true matrix tmpstip imagemask grestore } for pop } for pop pop pop pop pop } bind def
+/AdjustColor {CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } if } bind def
+/DrawText {/stipple exch def /justify exch def /yoffset exch def /xoffset exch def /spacing exch def /strings exch def /lineLength 0 def strings { cstringwidth pop dup lineLength gt {/lineLength exch def} {pop} ifelse newpath } forall 0 0 moveto baselineSampler false charpath pathbbox dup /baseline exch def exch pop exch sub /height exch def pop newpath translate rotate lineLength xoffset mul strings length 1 sub spacing mul height add yoffset mul translate justify lineLength mul baseline neg translate strings { dup cstringwidth pop justify neg mul 0 moveto stipple { gsave /char (X) def { dup type /stringtype eq { { char 0 3 -1 roll put currentpoint gsave char true charpath clip StippleText grestore char stringwidth translate moveto } forall } { currentfont /Encoding get exch 1 exch put currentpoint gsave (\001) true charpath clip StippleText grestore (\001) stringwidth translate moveto } ifelse } forall grestore } {cstringshow} ifelse 0 spacing neg translate } forall } bind def
+/TkPhotoColor {gsave 32 dict begin /tinteger exch def /transparent 1 string def transparent 0 tinteger put /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /crpp newdict /Decode get length 2 idiv def /str w string def /pix w crpp mul string def /substrlen 2 w log 2 log div floor exp cvi def /substrs [ { substrlen string 0 1 substrlen 1 sub { 1 index exch tinteger put } for /substrlen substrlen 2 idiv def substrlen 0 eq {exit} if } loop ] def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put olddict /DataSource get str readstring pop pop /tail str def /x 0 def olddict /DataSource get pix readstring pop pop { tail transparent search dup /done exch not def {exch pop exch pop} if /w1 exch length def w1 0 ne { newdict /DataSource pix x crpp mul w1 crpp mul getinterval put newdict /Width w1 put mat 4 x neg put /x x w1 add def newdict image /tail tail w1 tail length w1 sub getinterval def } if done {exit} if tail substrs { anchorsearch {pop} if } forall /tail exch def tail length 0 eq {exit} if /x w tail length sub def } loop } for end grestore } bind def
+/TkPhotoMono {gsave 32 dict begin /dummyInteger exch def /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /pix w 7 add 8 idiv string def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put 0.000 0.000 0.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask 1.000 1.000 1.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask } for end grestore } bind def
+%%EndProlog
+%%BeginSetup
+/CL 2 def
+%%EndSetup
+
+%%Page: 1 1
+save
+306.0 396.0 translate
+0.75 0.75 scale
+2 -253 translate
+-253 506 moveto 249 506 lineto 249 0 lineto -253 0 lineto closepath clip newpath
+gsave
+grestore
+gsave
+grestore
+gsave
+-250 -249 moveto
+-250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 -249 moveto
+-200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-150 -249 moveto
+-150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-100 -249 moveto
+-100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-50 -249 moveto
+-50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 -249 moveto
+0 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+50 -249 moveto
+50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+100 -249 moveto
+100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+150 -249 moveto
+150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+200 -249 moveto
+200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+250 -249 moveto
+250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 1 moveto
+500 1 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 51 moveto
+500 51 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 101 moveto
+500 101 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 151 moveto
+500 151 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 201 moveto
+500 201 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 251 moveto
+500 251 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 301 moveto
+500 301 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 351 moveto
+500 351 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 401 moveto
+500 401 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 451 moveto
+500 451 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 501 moveto
+500 501 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 51 moveto
+-150 51 lineto
+-150 101 lineto
+-200 101 lineto
+-200 51 lineto
+-100 51 lineto
+-100 151 lineto
+-200 151 lineto
+-200 51 lineto
+-50 50.9999999999999 lineto
+-49.9999999999999 201 lineto
+-200 201 lineto
+-200 51 lineto
+-5.6843418860808e-14 50.9999999999999 lineto
+1.02360665028348e-13 251 lineto
+-200 251 lineto
+-200 51 lineto
+49.9999999999999 50.9999999999998 lineto
+50.0000000000002 301 lineto
+-200 301 lineto
+-200 51.0000000000001 lineto
+99.9999999999999 50.9999999999997 lineto
+100 351 lineto
+-200 351 lineto
+-200 51.0000000000001 lineto
+150 50.9999999999996 lineto
+150 401 lineto
+-200 401 lineto
+-200 51.0000000000001 lineto
+200 50.9999999999995 lineto
+200.000000000001 450.999999999999 lineto
+-199.999999999999 451 lineto
+-200 51.0000000000002 lineto
+1 setlinecap
+1 setlinejoin
+5 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 51.0000000000002 moveto
+-209 56.0000000000002 lineto
+-207 51.0000000000002 lineto
+-209 46.0000000000002 lineto
+-200 51.0000000000002 lineto
+1.000 0.000 0.000 setrgbcolor AdjustColor
+eofill
+-200 51.0000000000002 moveto
+-209 56.0000000000002 lineto
+-207 51.0000000000002 lineto
+-209 46.0000000000002 lineto
+-200 51.0000000000002 lineto
+1 setlinejoin 1 setlinecap
+1 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+restore showpage
+
+%%Trailer
+end
+%%EOF
diff --git a/Notebooks/imgs_chap5/img_exo_carres.png b/Notebooks/imgs_chap5/img_exo_carres.png
index 1e0fedbdfdc8edc27568fbb7a40e41c88a114824..ac886413a2ff24a885922d57c43662ebbc927045 100644
GIT binary patch
literal 2075
zcmeAS@N?(olHy`uVBq!ia0y~yV60+bV65R_W?*3Wrrxlhfq_9G*(1o8fuTx`fuW&=
zf#DYe14F|L28L1t28LG&3=CE?7#PG0=IjczVPIfz4e$wZ{r~?z0~q{gVEE6#untUq
z1CtODTqFYnLkC3J|NmdtEXrbFU=S_|@(X6@IPTJMeE0XX{^{?PeqCFB@z3v*by7<i
z7#J9nyxm<GI#^{r7#J8h3p^r=85kHqY!3#vli79*3=Hfgp1!W^FB$p8tPH<6+~{Rs
zVB6v8;uunK>+RjsdCB2Ctbr?YzbmizOM3mk-c*-&(L&FLu(#gVC8b%54(@#GdEoNP
z61(|a@3($(UM98j&dF=bi`1j%{}TQE>1j;G`l<3pS3NxYmlpl6j+uXIZceRM`KGUM
zRRbunYF2eswceiT(@*)o^|$4{WFK2IH++Nr{5bFTz4x9bykDCT^=EDUvU1BC)$@Ko
zh<UkRtuB-~IR5!d?VV@#tIEw@6~+6U@3rdRwkcmCysC6mZKq9=^Y-jty5xA!rDV;Q
z8z~i*cX<E%>%Q9gi`U0WR4)wgtGw?Orav`1=aTt-nZ5FJo+<D9`p>wUx^|*Ee9?>T
z^6pwO0gGQ;-~at>`b*oE@Bgd+SKa-(+$&7((CfY5>qFPuyVewh)xXZZ{#xVL)%u55
z#HRdXrjGwn-2(CFrkDM{kFC3Y_ELRUc24m1*XwloAAXHf`J4XZK~JqJTk!lx^CMrr
z_y2Xf>8R?``F@`FqXT}$dHwo5`QNsLLeH1WgD-s-o3d~Eq<{aG?AMKm3HtSN%9p*Y
zOW!YDvfut?KDXHPDRow=wfT-Ot2L=(%u3cT6OT`ntKQqU=zI<T-Z*pb`Y+BEAjXWS
z0*?0!_pfSR*<Alxz7C||H}~_0ahJX?gE-G(*OD)?t1qf9eIL=Qr&)VEtHkrAb=YEW
zulpONVuOD5U41d>Qu!LU=~MP4n+}N5(BzZs`;WXX-TY<e^&3p<uk$Y3#Q*SV<=IQe
z>k5SS3pKC2Q=ewMcgcI-sWTz5N3EQJlrmUl-L2kywd$(-Ap5oIu8wUH$NLr6U$X^Y
zQQWim->M+_IScduPF#OI@QZW(Lz$c2zj&#TF_ElC&h(G}OW*zk3XQ|pZ<NKam-eYW
zptxs`s&TM<0f+v3`?qJVe6Zg<(>rY$4T3?{cG{{7|9=#IP&Ez~{dHe&f4%*eNi$b+
z{gt17dVc-iJt2L{vFh5g?osoleqH<jSNrSvqt`1{f3?dW{4J9ILg3!l?f>GdrZ?|B
zlzZ{j_J1#5zP+1&r}*cKm%l<B_x%y~du#Xp!OHvo6RPaXfA9Wx!#iymsDvNDvKwB9
zbX~u3?)mjo{4=wbEIA(ZpYh?1Fh_|*<-ZIJ49X?05hVr1Rvwu_sl`tDrFkitdFf91
z6%5Aa78S-82HJ*(=GsOEX68%(XEQJ`$U&9+q?V=TFa!kaI;P|&rRo~%87R001iOJ4
Tx95p^gKBM0S3j3^P6<r_#0v;h

literal 11784
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

diff --git a/Notebooks/imgs_chap5/img_exo_spirale (copie 1).py b/Notebooks/imgs_chap5/img_exo_spirale (copie 1).py
new file mode 100644
index 0000000..74703db
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_spirale (copie 1).py	
@@ -0,0 +1,41 @@
+from turtle import *
+
+speed(0)
+WIDTH, HEIGHT = 500, 500
+
+screen = Screen()
+screen.setup(WIDTH + 4, HEIGHT + 8)  # fudge factors due to window borders & title bar
+
+
+penup()
+for k in range(21):
+    goto(-500+k*50,-500)
+    pendown()
+    goto(-500+k*50,500)
+    penup()
+for k in range(20):
+    goto(-500,-500+k*50)
+    pendown()
+    goto(500,-500+k*50)
+    penup()
+
+goto(-200, -200)
+pendown()
+width(5)
+
+color("red")
+
+x = 400
+for _ in range(8):
+    forward(x)
+    left(90)
+    x = x - 50
+
+shape('turtle')
+penup()
+goto(-200, -200)
+
+ts = getscreen()
+ts.getcanvas().postscript(file="img_exo_spirale.eps")
+
+done()
\ No newline at end of file
diff --git a/Notebooks/imgs_chap5/img_exo_spirale.eps b/Notebooks/imgs_chap5/img_exo_spirale.eps
new file mode 100644
index 0000000..a7e2a62
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_spirale.eps
@@ -0,0 +1,390 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Tk Canvas Widget
+%%For: mathieu
+%%Title: Window .!canvas
+%%CreationDate: Wed Jan 15 22:14:23 2025
+%%BoundingBox: 117 206 495 586
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%Orientation: Portrait
+%%EndComments
+
+%%BeginProlog
+% This is a standard prolog for Postscript generated by Tk's canvas
+% widget.
+/CurrentEncoding [
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven
+/eight/nine/colon/semicolon/less/equal/greater/question
+/at/A/B/C/D/E/F/G
+/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W
+/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+/grave/a/b/c/d/e/f/g
+/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w
+/x/y/z/braceleft/bar/braceright/asciitilde/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
+/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
+] def
+50 dict begin
+/baseline 0 def
+/stipimage 0 def
+/height 0 def
+/justify 0 def
+/lineLength 0 def
+/spacing 0 def
+/stipple 0 def
+/strings 0 def
+/xoffset 0 def
+/yoffset 0 def
+/tmpstip null def
+/baselineSampler ( TXygqPZ) def
+baselineSampler 0 196 put
+/cstringshow {{ dup type /stringtype eq { show } { glyphshow } ifelse } forall } bind def
+/cstringwidth {0 exch 0 exch { dup type /stringtype eq { stringwidth } { currentfont /Encoding get exch 1 exch put (\001) stringwidth } ifelse exch 3 1 roll add 3 1 roll add exch } forall } bind def
+/ISOEncode {dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding CurrentEncoding def currentdict end /Temporary exch definefont } bind def
+/StrokeClip {{strokepath} stopped { (This Postscript printer gets limitcheck overflows when) = (stippling dashed lines;  lines will be printed solid instead.) = [] 0 setdash strokepath} if clip } bind def
+/EvenPixels {dup 0 matrix currentmatrix dtransform dup mul exch dup mul add sqrt dup round dup 1 lt {pop 1} if exch div mul } bind def
+/StippleFill {/tmpstip 1 index def 1 EvenPixels dup scale pathbbox 4 2 roll 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll 6 index exch { 2 index 5 index 3 index { gsave 1 index exch translate 5 index 5 index true matrix tmpstip imagemask grestore } for pop } for pop pop pop pop pop } bind def
+/AdjustColor {CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } if } bind def
+/DrawText {/stipple exch def /justify exch def /yoffset exch def /xoffset exch def /spacing exch def /strings exch def /lineLength 0 def strings { cstringwidth pop dup lineLength gt {/lineLength exch def} {pop} ifelse newpath } forall 0 0 moveto baselineSampler false charpath pathbbox dup /baseline exch def exch pop exch sub /height exch def pop newpath translate rotate lineLength xoffset mul strings length 1 sub spacing mul height add yoffset mul translate justify lineLength mul baseline neg translate strings { dup cstringwidth pop justify neg mul 0 moveto stipple { gsave /char (X) def { dup type /stringtype eq { { char 0 3 -1 roll put currentpoint gsave char true charpath clip StippleText grestore char stringwidth translate moveto } forall } { currentfont /Encoding get exch 1 exch put currentpoint gsave (\001) true charpath clip StippleText grestore (\001) stringwidth translate moveto } ifelse } forall grestore } {cstringshow} ifelse 0 spacing neg translate } forall } bind def
+/TkPhotoColor {gsave 32 dict begin /tinteger exch def /transparent 1 string def transparent 0 tinteger put /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /crpp newdict /Decode get length 2 idiv def /str w string def /pix w crpp mul string def /substrlen 2 w log 2 log div floor exp cvi def /substrs [ { substrlen string 0 1 substrlen 1 sub { 1 index exch tinteger put } for /substrlen substrlen 2 idiv def substrlen 0 eq {exit} if } loop ] def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put olddict /DataSource get str readstring pop pop /tail str def /x 0 def olddict /DataSource get pix readstring pop pop { tail transparent search dup /done exch not def {exch pop exch pop} if /w1 exch length def w1 0 ne { newdict /DataSource pix x crpp mul w1 crpp mul getinterval put newdict /Width w1 put mat 4 x neg put /x x w1 add def newdict image /tail tail w1 tail length w1 sub getinterval def } if done {exit} if tail substrs { anchorsearch {pop} if } forall /tail exch def tail length 0 eq {exit} if /x w tail length sub def } loop } for end grestore } bind def
+/TkPhotoMono {gsave 32 dict begin /dummyInteger exch def /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /pix w 7 add 8 idiv string def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put 0.000 0.000 0.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask 1.000 1.000 1.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask } for end grestore } bind def
+%%EndProlog
+%%BeginSetup
+/CL 2 def
+%%EndSetup
+
+%%Page: 1 1
+save
+306.0 396.0 translate
+0.75 0.75 scale
+2 -253 translate
+-253 506 moveto 249 506 lineto 249 0 lineto -253 0 lineto closepath clip newpath
+gsave
+grestore
+gsave
+grestore
+gsave
+-250 -249 moveto
+-250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 -249 moveto
+-200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-150 -249 moveto
+-150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-100 -249 moveto
+-100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-50 -249 moveto
+-50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 -249 moveto
+0 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+50 -249 moveto
+50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+100 -249 moveto
+100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+150 -249 moveto
+150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+200 -249 moveto
+200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+250 -249 moveto
+250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 1 moveto
+500 1 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 51 moveto
+500 51 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 101 moveto
+500 101 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 151 moveto
+500 151 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 201 moveto
+500 201 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 251 moveto
+500 251 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 301 moveto
+500 301 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 351 moveto
+500 351 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 401 moveto
+500 401 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 451 moveto
+500 451 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 501 moveto
+500 501 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 51 moveto
+200 51 lineto
+200 401 lineto
+-100 401 lineto
+-100 151 lineto
+100 151 lineto
+100 301 lineto
+2.8421709430404e-14 301 lineto
+6.99039044532532e-15 251 lineto
+1 setlinecap
+1 setlinejoin
+5 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+grestore
+gsave
+-184 51 moveto
+-186 53 lineto
+-190 52 lineto
+-193 55 lineto
+-191 58 lineto
+-192 60 lineto
+-195 57 lineto
+-199 58 lineto
+-203 56 lineto
+-206 59 lineto
+-208 57 lineto
+-205 55 lineto
+-207 51 lineto
+-205 47 lineto
+-208 45 lineto
+-206 43 lineto
+-203 46 lineto
+-199 44 lineto
+-195 45 lineto
+-192 42 lineto
+-191 44 lineto
+-193 47 lineto
+-190 50 lineto
+-186 49 lineto
+-184 51 lineto
+1.000 0.000 0.000 setrgbcolor AdjustColor
+eofill
+-184 51 moveto
+-186 53 lineto
+-190 52 lineto
+-193 55 lineto
+-191 58 lineto
+-192 60 lineto
+-195 57 lineto
+-199 58 lineto
+-203 56 lineto
+-206 59 lineto
+-208 57 lineto
+-205 55 lineto
+-207 51 lineto
+-205 47 lineto
+-208 45 lineto
+-206 43 lineto
+-203 46 lineto
+-199 44 lineto
+-195 45 lineto
+-192 42 lineto
+-191 44 lineto
+-193 47 lineto
+-190 50 lineto
+-186 49 lineto
+-184 51 lineto
+1 setlinejoin 1 setlinecap
+1 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+restore showpage
+
+%%Trailer
+end
+%%EOF
diff --git a/Notebooks/imgs_chap5/img_exo_spirale.png b/Notebooks/imgs_chap5/img_exo_spirale.png
index a7e2a622fd0ebcfed79f958abd77eae1cfae515e..53f0a70a7d96cf9997679b6b26c995fd0e2a2775 100644
GIT binary patch
literal 2086
zcmeAS@N?(olHy`uVBq!ia0y~yV60+bV65R_W?*3Wrrxlhfq_9G*(1o8fuTx`fuW&=
zf#DYe14F|L28L1t28LG&3=CE?7#PG0=IjczVPIg$3GfMV{r~?z0~q{gVEE6#FrR^8
z9hd>(l1(yz4e4ND5M*HZ&cNWp!0`Y7f8nep_6!URvL!)&!3-V81$Xa1-r-`r_1c%e
z{lArdUHtkz^hnyJ`TN(unia-n&A`CGnB?v5!qCAg>%qXlz**oCS<Jw|0AhPExSh<l
zV_;xlFY)wsWq--YFJ{da`poAr0|VP6PZ!6Kid%2zp7xV*6Jcd<W^BJP!)A{9geU*)
zjXWk!3VqUDlK$$<!YW&>(CNo>&peaiYwzwp{J_S~PUV&8ikQt+A?qS-U$K6BclRh%
zP~&p)iaY!JzrrN7uCI}snjO}E%5=5+(^*#+7oB|-xHFA@(xnw&9Mr#i2M(A6kUj60
zUsm}wq<)>A`b&Siuy6C;6?J{C+jOk#)0gWd(}L%`_WU*3-ohNjoPDyndCB}4ssC>8
zs5ls7d^tI7+3_<z{WE9E85`TCrB$6d^JT`&mxff9`1{g--~VralD_%$Ur>!P`0jo2
z|Jr_28d`|vshoyecdtmVy`H<w{n`z+<kaQ&ugqR^T{rH-n#=n6uXLlH@;%hGwKzSy
zsypm!{@=>QZ5Ef`4-Mj6703HMfrsr+p2`3Fmiv|2xmUh67VWp6J62wne>iDo*s|km
zeEK72%565XO-rphbLz{CsV@z+FDFx3;@%N~xMf#oOB_1ArApYjVrJOBue7lU%`>58
zzgEv)KkxPH_4Uu5J*)h*kn`26wM)+1<R@|Hf4;*1@b0D7|KI0S1i%0Cl7D+P|CdM6
z|C_A7E|Z(EPd2rRht_DSbxU~vDcM7--JkM3yt=sNwc(VPR7O_{FV+8eX7qB>%oRt!
zOfN6jKlpz~t>*u?$NfF0pK;M$wtx5j{lEXbJm0?j{l5CDU0%CV)Upi!Uj2Ld@8!ex
z%4YU8ejt(0YyW@T|963Y;Pf*txy$~)e0cwheEq(kPp{u^66<9OyzINz^Vj{CYuA0Y
z_I9qQzxdta@MhDN=iC2XP2aTgd2~I`m5kv0N%!U#^fgI6__On$#R|rA|If;?n;!US
zJ?HU)xc1*4j^2-1w~+2-w8itgn?JkFlym;eyZc7p7nO&i+zbp1$|bH5B?ZM+9+^R@
z#ZLL9c`2EB=}!3-494ab6~-0@+J=Va+C~Ou=1c!)GcYj7L6!TYmZjz}1O)3krsOB3
e>Kf}AD7Xd$yMY+D=ZSiQDsWF%KbLh*2~7Y5(h4{L

literal 11663
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
YB8L<uX6B?8ai!*^aH*=g`nz!f06_*uU;qFB

diff --git a/Notebooks/imgs_chap5/img_exo_triangles (copie 1).py b/Notebooks/imgs_chap5/img_exo_triangles (copie 1).py
new file mode 100644
index 0000000..423556f
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_triangles (copie 1).py	
@@ -0,0 +1,46 @@
+from turtle import *
+
+speed(0)
+WIDTH, HEIGHT = 500, 500
+L_carre = 25
+
+screen = Screen()
+screen.setup(WIDTH + 4, HEIGHT + 8)  # fudge factors due to window borders & title bar
+
+
+penup()
+for k in range(2*WIDTH//L_carre + 1):
+    goto(-WIDTH+k*L_carre,-HEIGHT)
+    pendown()
+    goto(-WIDTH+k*L_carre,HEIGHT)
+    penup()
+for k in range(2*HEIGHT//L_carre):
+    goto(-WIDTH,-HEIGHT+k*L_carre)
+    pendown()
+    goto(WIDTH,-HEIGHT+k*L_carre)
+    penup()
+
+# pour positionner le curseur en bas à gauche
+penup()
+goto(0, 0)
+pendown()
+
+# mettre le bon style de trait
+width(3)
+color("red")
+
+def triangle(longueur):
+    for _ in range(3):
+        forward(longueur)
+        left(120)
+# à compléter avec maximum 5 lignes
+x = 200
+for _ in range(6):
+    triangle(x)
+    left(60)
+    x = x - 25
+
+ts = getscreen()
+ts.getcanvas().postscript(file="img_exo_triangles.eps")
+
+done()
\ No newline at end of file
diff --git a/Notebooks/imgs_chap5/img_exo_triangles.eps b/Notebooks/imgs_chap5/img_exo_triangles.eps
new file mode 100644
index 0000000..8b94342
--- /dev/null
+++ b/Notebooks/imgs_chap5/img_exo_triangles.eps
@@ -0,0 +1,558 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Tk Canvas Widget
+%%For: mathieu
+%%Title: Window .!canvas
+%%CreationDate: Wed Jan 15 23:19:34 2025
+%%BoundingBox: 117 206 495 586
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%Orientation: Portrait
+%%EndComments
+
+%%BeginProlog
+% This is a standard prolog for Postscript generated by Tk's canvas
+% widget.
+/CurrentEncoding [
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven
+/eight/nine/colon/semicolon/less/equal/greater/question
+/at/A/B/C/D/E/F/G
+/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W
+/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+/grave/a/b/c/d/e/f/g
+/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w
+/x/y/z/braceleft/bar/braceright/asciitilde/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/space/space/space/space/space/space/space
+/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron
+/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
+/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
+/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
+/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
+] def
+50 dict begin
+/baseline 0 def
+/stipimage 0 def
+/height 0 def
+/justify 0 def
+/lineLength 0 def
+/spacing 0 def
+/stipple 0 def
+/strings 0 def
+/xoffset 0 def
+/yoffset 0 def
+/tmpstip null def
+/baselineSampler ( TXygqPZ) def
+baselineSampler 0 196 put
+/cstringshow {{ dup type /stringtype eq { show } { glyphshow } ifelse } forall } bind def
+/cstringwidth {0 exch 0 exch { dup type /stringtype eq { stringwidth } { currentfont /Encoding get exch 1 exch put (\001) stringwidth } ifelse exch 3 1 roll add 3 1 roll add exch } forall } bind def
+/ISOEncode {dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding CurrentEncoding def currentdict end /Temporary exch definefont } bind def
+/StrokeClip {{strokepath} stopped { (This Postscript printer gets limitcheck overflows when) = (stippling dashed lines;  lines will be printed solid instead.) = [] 0 setdash strokepath} if clip } bind def
+/EvenPixels {dup 0 matrix currentmatrix dtransform dup mul exch dup mul add sqrt dup round dup 1 lt {pop 1} if exch div mul } bind def
+/StippleFill {/tmpstip 1 index def 1 EvenPixels dup scale pathbbox 4 2 roll 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll 6 index exch { 2 index 5 index 3 index { gsave 1 index exch translate 5 index 5 index true matrix tmpstip imagemask grestore } for pop } for pop pop pop pop pop } bind def
+/AdjustColor {CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } if } bind def
+/DrawText {/stipple exch def /justify exch def /yoffset exch def /xoffset exch def /spacing exch def /strings exch def /lineLength 0 def strings { cstringwidth pop dup lineLength gt {/lineLength exch def} {pop} ifelse newpath } forall 0 0 moveto baselineSampler false charpath pathbbox dup /baseline exch def exch pop exch sub /height exch def pop newpath translate rotate lineLength xoffset mul strings length 1 sub spacing mul height add yoffset mul translate justify lineLength mul baseline neg translate strings { dup cstringwidth pop justify neg mul 0 moveto stipple { gsave /char (X) def { dup type /stringtype eq { { char 0 3 -1 roll put currentpoint gsave char true charpath clip StippleText grestore char stringwidth translate moveto } forall } { currentfont /Encoding get exch 1 exch put currentpoint gsave (\001) true charpath clip StippleText grestore (\001) stringwidth translate moveto } ifelse } forall grestore } {cstringshow} ifelse 0 spacing neg translate } forall } bind def
+/TkPhotoColor {gsave 32 dict begin /tinteger exch def /transparent 1 string def transparent 0 tinteger put /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /crpp newdict /Decode get length 2 idiv def /str w string def /pix w crpp mul string def /substrlen 2 w log 2 log div floor exp cvi def /substrs [ { substrlen string 0 1 substrlen 1 sub { 1 index exch tinteger put } for /substrlen substrlen 2 idiv def substrlen 0 eq {exit} if } loop ] def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put olddict /DataSource get str readstring pop pop /tail str def /x 0 def olddict /DataSource get pix readstring pop pop { tail transparent search dup /done exch not def {exch pop exch pop} if /w1 exch length def w1 0 ne { newdict /DataSource pix x crpp mul w1 crpp mul getinterval put newdict /Width w1 put mat 4 x neg put /x x w1 add def newdict image /tail tail w1 tail length w1 sub getinterval def } if done {exit} if tail substrs { anchorsearch {pop} if } forall /tail exch def tail length 0 eq {exit} if /x w tail length sub def } loop } for end grestore } bind def
+/TkPhotoMono {gsave 32 dict begin /dummyInteger exch def /olddict exch def olddict /DataSource get dup type /filetype ne { olddict /DataSource 3 -1 roll 0 () /SubFileDecode filter put } { pop } ifelse /newdict olddict maxlength dict def olddict newdict copy pop /w newdict /Width get def /pix w 7 add 8 idiv string def /h newdict /Height get def 1 w div 1 h div matrix scale olddict /ImageMatrix get exch matrix concatmatrix matrix invertmatrix concat newdict /Height 1 put newdict /DataSource pix put /mat [w 0 0 h 0 0] def newdict /ImageMatrix mat put 0 1 h 1 sub { mat 5 3 -1 roll neg put 0.000 0.000 0.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask 1.000 1.000 1.000 setrgbcolor olddict /DataSource get pix readstring pop pop newdict /DataSource pix put newdict imagemask } for end grestore } bind def
+%%EndProlog
+%%BeginSetup
+/CL 2 def
+%%EndSetup
+
+%%Page: 1 1
+save
+306.0 396.0 translate
+0.75 0.75 scale
+2 -253 translate
+-253 506 moveto 249 506 lineto 249 0 lineto -253 0 lineto closepath clip newpath
+gsave
+grestore
+gsave
+grestore
+gsave
+-250 -249 moveto
+-250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-225 -249 moveto
+-225 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-200 -249 moveto
+-200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-175 -249 moveto
+-175 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-150 -249 moveto
+-150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-125 -249 moveto
+-125 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-100 -249 moveto
+-100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-75 -249 moveto
+-75 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-50 -249 moveto
+-50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-25 -249 moveto
+-25 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 -249 moveto
+0 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+25 -249 moveto
+25 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+50 -249 moveto
+50 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+75 -249 moveto
+75 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+100 -249 moveto
+100 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+125 -249 moveto
+125 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+150 -249 moveto
+150 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+175 -249 moveto
+175 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+200 -249 moveto
+200 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+225 -249 moveto
+225 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+250 -249 moveto
+250 751 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 1 moveto
+500 1 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 26 moveto
+500 26 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 51 moveto
+500 51 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 76 moveto
+500 76 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 101 moveto
+500 101 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 126 moveto
+500 126 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 151 moveto
+500 151 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 176 moveto
+500 176 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 201 moveto
+500 201 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 226 moveto
+500 226 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 251 moveto
+500 251 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 276 moveto
+500 276 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 301 moveto
+500 301 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 326 moveto
+500 326 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 351 moveto
+500 351 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 376 moveto
+500 376 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 401 moveto
+500 401 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 426 moveto
+500 426 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 451 moveto
+500 451 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 476 moveto
+500 476 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-500 501 moveto
+500 501 lineto
+1 setlinecap
+1 setlinejoin
+1 setlinewidth
+[] 0 setdash
+0.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+0 251 moveto
+200 251 lineto
+100 424.205080756888 lineto
+-2.8421709430404e-14 251 lineto
+87.5000000000001 402.554445662277 lineto
+-87.4999999999999 402.554445662277 lineto
+-1.13686837721616e-13 251 lineto
+-74.9999999999999 380.903810567666 lineto
+-150 251 lineto
+-1.13686837721616e-13 251 lineto
+-125 251 lineto
+-62.5000000000004 142.746824526945 lineto
+-9.2370555648813e-14 251 lineto
+-50.0000000000003 164.397459621556 lineto
+49.9999999999996 164.397459621556 lineto
+-6.3948846218409e-14 251 lineto
+37.4999999999997 186.048094716167 lineto
+74.9999999999999 251 lineto
+-4.2632564145606e-14 251 lineto
+1 setlinecap
+1 setlinejoin
+3 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+gsave
+-4.2632564145606e-14 251 moveto
+-9.00000000000002 256 lineto
+-7.00000000000004 251 lineto
+-9.00000000000007 246 lineto
+-4.2632564145606e-14 251 lineto
+1.000 0.000 0.000 setrgbcolor AdjustColor
+eofill
+-4.2632564145606e-14 251 moveto
+-9.00000000000002 256 lineto
+-7.00000000000004 251 lineto
+-9.00000000000007 246 lineto
+-4.2632564145606e-14 251 lineto
+1 setlinejoin 1 setlinecap
+1 setlinewidth
+[] 0 setdash
+1.000 0.000 0.000 setrgbcolor AdjustColor
+stroke
+grestore
+restore showpage
+
+%%Trailer
+end
+%%EOF
diff --git a/Notebooks/imgs_chap5/img_exo_triangles.png b/Notebooks/imgs_chap5/img_exo_triangles.png
index 8b94342e4b83598e74b6ad61576ae4322a95b4e8..55d249b355c0554f21cfe9d978ed895a9329c3e7 100644
GIT binary patch
literal 5251
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
LS3j3^P6<r_An2@D

literal 14630
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

-- 
GitLab