<snapdata remixID="10172238"><project name="Torniello" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAKAklEQVR4AexdWZYkJwysnvuf2W1yoYskhdAKymVedy4gQhGhqPLzx9j/fgP/+U/LTQ3QIUDGJxd2GvK3P15/fmyA/9nA+KCoNTYBfm0IN/FreHJhfTDuO9FCVHnaDBNAoh6jgSTlRkgvzO5Aw9Lfxvp6Kg09TAAxnivZ9xLbgRQmkGBax2YbJoAg+UcupokpdOtOfxtjoflW0Z4wThMD+PvBiNGk4VXe+Hh36a5u9LrTX84c7zQ9FQHkUNyEHU/8fH62Zbcriu/W9XnAx7ku+unOKwJIb7JQWn75J5ZT7+/1HDhHEtSQAqEIIAj5cf/naqPtk5aJ441vSRJiH8CU6lV5Al/vJhdTsA6jY6/jW+fooO1s8aB2VRvb7vYBzHQ5PLtT5oBlAvi93fLY6/iGYw7fbYtwpGLb1C+AHAsmTHlCy8IRoyHOFVHo6T22iZ4DaORNk5I3ftnYo5cJZnsgJX2n5wmwbdPOAVR50270p1qF/4dCe/Do5YFJU3PLqnMAVTLf6ajsu8thRgxUASR8393F0lvoYORCp5cRDFUAxwg6qjm+6Xx62umI3qkCiA3QTuwx5sc3jIFwz464kMCzjrkF0D0oXnOSEr91cDumdLaxUbkFEGp667XDEKKl8UBOMIaOns421jAFUHEaQ370nnbguHn8ifFP4AzsdlMAYbNCUp5AStOSe5ZaD0/MLhQjkVIA4XYhRU4gpWnJPcuthyd3rdVmAF1lUD/qriRswS8lKVDSSQE0NzeQAVYxHC9JMRXFUSu/Mg4pgGbmBhKeDRhz9+gCTWWswRADrlJSALmgzXoLxk3wd+Nj9LdsqGPqxZ2CMzaAn/l/eqbNZzifgZVHGQcLYtAAZur2w8DMsO+mRfTzQcuMcx5TcQogVsxpqqu9Vkx0WrHT9/fhFMChkmOkHUvAu7c74JWLUwD3fmNuXqrGsH9UF+l3RcukPHpRAK3JtEhGXyf7QC70V5wHj3Wi1GDnKXvZElEARxCkiJhdQ/aBXOiraKGRB491otRg5zl7ogByGtBrR8qms3KpnCR1a7vE0EWVCDRQAGMZI3KTemiq1C2GVKredYEC6C31xR/iAPPD1QlgrE/LEAMdmni7COPDqxJ5rEwx23YCyGot0eZ3JhCyt4swPrwqsYWZKVaLTgBZWG/x4xxohby1fjboDeDZkwuslN9J5XOLOj0QLQR4/dv72OG7Dp/7rr4B/Hpxoady3OVzkgDOHlxMxXY/0g5vAO1m4IbEGm6VRzdSO7C2XdgAskzfzbjrTTtkT1+gOXH4hg0gR4SnwRg2ZD5WP2hvepvsC2WGMQOYFVha6YBJMXiT4P//RNn6xLpSLB8bQAqjxUP6ZJdq2q8HJq1zqvox+tsaCSrkz4+Y1dgAynmKBb4HSwe8BkD9Zim5bM9jA7j15F3l2nh9HlEdz8z4AfT60D4icKNEyodkGsB4n69RA3h6nzR5YQZNAyjkEHh6yVhndv4dnAVkeKEQ0wBmLs27kOSKpzm7Akgu/h8p/w4S3Y5nKsFjA1g1J8tcwic9S27yFnIcEI9jmWXRaGwAi8asR7FaVheT4spfHaYVmIN/v0aY7QCSxZMLdcMgnwb4AEtkOGah0Vy2rlZgHvqNMNsBJIsnF26mul8BPsCSO40bNvCwsR3AGxroJ+kZyEZfegezaAH06Hyg8b481YFTAMGseXz3hnYcdMGN8dhubjJEwKcAqrJ2GyezC2MEbd2AXsCSaMqBD50CqOK6OamCiHV4pCCgV166QBAzVe78bAPI7f70emqw8nSp9RN8lVJTBVDa1MefWGxIGnOwSMWpiFufjpQ/6HF0s0Q5PmvfVAGcxLmheRwbddTVAA0LoOXCFrQtugkB26ypArhQsOJthbNw8v4tZiprpQRgecUqlsnRnFIHUOnlH3cVTnCT/0QaPai8MuJgBaMOoBURFU7UiTzsgyGZoSiAr6+11Q1Hon4wavoT30UBfH2tJzbAkUbGayZXexcFMITIgCRcM6LMuPK4m9umAXQdgJsFGZjBvlEadciLwgblZWvqr2kAIw+g7zKDPaO031dQETVNtRSCT6YBrPvf7j3K4AmDtfRe3I7g1xtAzqTEk+A0iVd7zpGdEXgAz51V7hjDqbhc//BMN+164wE8BF3f1BhuaIb06je6Bjgb0E3+e1t4AHep2+0Qn21Jc01wdsPQEKGdTXTXQi3njLOCvZcPI4CFW9op7FC2wzAitXNr3Uicx1BpUfRbJ4nf2lNLZQGkom9cnK71lEOQ2rQmKjW7bSP2NdHGCTJEUUvXAFKLcXajd7t2uRPCfJvPji8f08NHo51YA3hFs2jyqFUy61/fqP6269YAtrefstOL0h7Q/fYUV/Q6e75+eP8Skgk9aw6L2p9N+n7bXt5r34HFO7xK9A2Iz6HfFKcUbRdX22Z7Nx/aSjU7ogDiDaUDw1GvtbuEL7gPO739Ns1ehwBO0xKosXysS3SHCNkb7bchLaEmtwrgbDM/n5JB+QxZD6/JowvjRV9lBFBm6EgD5g+vZFA+j3TBqZeTHEYAnRg4+WULe2M06lidvn8YAbzxEIJIc5oxrq5qSs0jDkrffQNI98q9cvTwIUFVHqES0zXDAI6mXvlwan9aqA5gr5qzGO67VztgGMDJn99T+9NCrR157519A4qYx9oyDCCrL6M44rB7AWXIe3jpBQI4atgRgz4/nd4MLhBAbwsyvjzob3Szh/y7eQDjDsOOWY2Uo1uv88fROEEBptQ04JvLWVhd0Fqv6wjv5AC29NXrhtwI9DkldsxaSHm99qTJklqYgZtAaYNSk8pYPy1+rXUW+FZMDmBLX2t9g7/Xleo72RNy4b18LNWQA1geGvZMnbiSELVNpLxQOSutcT8eO4DEiWuHQWyThqHtlCCMfnqc4zDFBccNIMS74WpvGCtU4+y6R76QOpHRPAvHMNV3iRHANRzrBZ+JRq/mLM7qYruWRlQzE0DHCOBKfL2sw6xkrWu6iz2ijs/M0zZefKdVaBFAxwhgoWF5BMUtG+Jfe0QxlRscXNwUZA1UHjKAR6ZWUo+o75vcAcuJ2AfQkt3q0fJ5Wx/iXMw1Wkjjkorhq30AY+iymGgbw1djuy+60yd1rIACe6xA2wGbktPdAEI0gd5TliJzm2JIp2nfr34F1kJyuhtASaoxkpq9WmAkbhpd6NlaNFrsu+nhdzeAoCTAFGAJPKpZ9DBAw8flbG1kINE1NQv9sgACpgBLFvyeh/EwI2UBfF4suoq/3w7fp+4hx4IYLPoCbxXAmaZ/v7i+T337/So2FjMdoWk7BJB2JG7VZnpcfmJm4hzFd+RWARQPOPrB+DkCHKSRfgMIWPfkJVpsKA7BX9s1Pi2AMBaFxb1qHuCDt8QanxbAOraEWNWNCEfilwh8KEVZeWKFU3Kb9fw/AAAA//+NpxtzAAAABklEQVQDAAVT7ywEeIh1AAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Torniello"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="ccw_arc around ( %&apos;cx&apos; , %&apos;cy&apos; ) from ( %&apos;sx&apos; , %&apos;sy&apos; ) to ( %&apos;ex&apos; , %&apos;ey&apos; ), %&apos;nsegs&apos; steps" type="command" category="pen"><comment x="0" y="0" w="194" collapsed="false">Draw a counter-clockwise arc around the specified center (cx,cy), starting at the specified starting (sx,sy), and ending _in_the_direction_of_ ending (ex,ey). &#xD;&#xD;(Note the radius is taken only from the starting point, distance to the ending point does not matter, only direction)&#xD;&#xD;The arc will be drawn as nsegs line segments. </comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%n">20</input></inputs><script><block s="up"></block><block s="doDeclareVariables"><list><l>dx</l><l>dy</l><l>r</l><l>sa</l><l>ea</l><l>da</l></list></block><block s="doSetVar"><l>dx</l><block s="reportDifference"><block var="sx"/><block var="cx"/></block><comment w="277" collapsed="false">Radius is computed as distance from center to starting point.</comment></block><block s="doSetVar"><l>dy</l><block s="reportDifference"><block var="sy"/><block var="cy"/></block></block><block s="doSetVar"><l>r</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="dx"/><block var="dx"/></list></block><block s="reportVariadicProduct"><list><block var="dy"/><block var="dy"/></list></block></list></block></block></block><block s="doSetVar"><l>sa</l><block s="reportAtan2"><block var="dy"/><block var="dx"/></block><comment w="292" collapsed="false">Starting Angle is degrees CCW the line form the center to the starting point is from &apos;East&apos;</comment></block><block s="doSetVar"><l>dx</l><block s="reportDifference"><block var="ex"/><block var="cx"/></block></block><block s="doSetVar"><l>dy</l><block s="reportDifference"><block var="ey"/><block var="cy"/></block></block><block s="doSetVar"><l>ea</l><block s="reportAtan2"><block var="dy"/><block var="dx"/></block><comment w="380" collapsed="false">Same calculation for Ending Angle. We don&apos;t actually care about distance to (ex,ey)</comment></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="ea"/><block var="sa"/></list></block><script><block s="doSetVar"><l>ea</l><block s="reportVariadicSum"><list><block var="ea"/><l>360</l></list></block><comment w="380" collapsed="false">But watch out for wraparound. If these angles come out, say, from 30deg to -60deg, we need to instead call it from 30deg to 300deg</comment></block></script><list></list></block><block s="doSetVar"><l>da</l><block s="reportQuotient"><block s="reportDifference"><block var="ea"/><block var="sa"/></block><block var="nsegs"/></block></block><block s="doDeclareVariables"><list><l>a</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>x</l><block var="sx"/></block><block s="doSetVar"><l>y</l><block var="sy"/></block><block s="doSetVar"><l>a</l><block var="sa"/></block><block s="gotoXY"><custom-block s="xform %s"><block var="x"/></custom-block><custom-block s="yform %s"><block var="y"/></custom-block><comment w="270" collapsed="false">Now we&apos;re ready to draw. Go to the starting point..</comment></block><block s="down"></block><block s="doRepeat"><block var="nsegs"/><script><block s="doSetVar"><l>a</l><block s="reportVariadicSum"><list><block var="a"/><block var="da"/></list></block><comment w="253" collapsed="false">...and repeatedly increment the angle, recompute next x,y and move to it</comment></block><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block var="cx"/><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>cos</option></l><block var="a"/></block></list></block></list></block></block><block s="doSetVar"><l>y</l><block s="reportVariadicSum"><list><block var="cy"/><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>sin</option></l><block var="a"/></block></list></block></list></block></block><block s="gotoXY"><custom-block s="xform %s"><block var="x"/></custom-block><custom-block s="yform %s"><block var="y"/></custom-block></block></script></block><block s="up"></block></script></block-definition><block-definition s="cw_arc around ( %&apos;cx&apos; , %&apos;cy&apos; ) from ( %&apos;sx&apos; , %&apos;sy&apos; ) to ( %&apos;ex&apos; , %&apos;ey&apos; ), %&apos;nsegs&apos; steps" type="command" category="pen"><comment x="0" y="0" w="163" collapsed="false">A clockwise arc from (sx,sy) to (ex,ey) is just a counter-clockwise arc from (ex,ey) to (sx,sy)</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%n">20</input></inputs><script><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><block var="cx"/><block var="cy"/><block var="ex"/><block var="ey"/><block var="sx"/><block var="sy"/><block var="nsegs"/></custom-block></script></block-definition><block-definition s="line from ( %&apos;x1&apos; , %&apos;y1&apos; ) to ( %&apos;x2&apos; , %&apos;y2&apos; )" type="command" category="pen"><comment x="0" y="0" w="143" collapsed="false">Draw a line segment between the given points</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="up"></block><block s="gotoXY"><custom-block s="xform %s"><block var="x1"/></custom-block><custom-block s="yform %s"><block var="y1"/></custom-block></block><block s="down"></block><block s="gotoXY"><custom-block s="xform %s"><block var="x2"/></custom-block><custom-block s="yform %s"><block var="y2"/></custom-block></block><block s="up"></block></script></block-definition><block-definition s="xform %&apos;x&apos;" type="reporter" category="pen"><comment x="0" y="0" w="254" collapsed="false">xform stands for transform an x coordinate; embiggen it and translate it with internal variables scalex, shiftx</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>scalex</l><l>shiftx</l></list></block><block s="doSetVar"><l>shiftx</l><l>-4.5</l></block><block s="doSetVar"><l>scalex</l><l>40</l></block><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block var="x"/><block var="shiftx"/></list></block><block var="scalex"/></list></block></block></script></block-definition><block-definition s="yform %&apos;y&apos;" type="reporter" category="pen"><comment x="0" y="0" w="178" collapsed="true">yform is just like xform, but for y</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>scaley</l><l>shifty</l></list></block><block s="doSetVar"><l>shifty</l><l>-4.5</l></block><block s="doSetVar"><l>scaley</l><l>40</l></block><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block var="y"/><block var="shifty"><comment w="158" collapsed="true">hmmm, seems kinda shifty</comment></block></list></block><block var="scaley"/></list></block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="480" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="257"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="258"></list></costumes><sounds><list struct="atomic" id="259"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="18,157,0,1" pen="tip" id="264"><costumes><list struct="atomic" id="265"></list></costumes><sounds><list struct="atomic" id="266"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveGo"><comment w="362" collapsed="false">This Snap! script constructs the letter S, as specified by Francesco Torniello in 1517, as presented by Donald Knuth in his 1980 paper introducing METAFONT, titled &apos;The Letter S&apos;.&#xD;&#xD;Using the literal coordinates given by Knuth/Torniello below draws a adorably tiny S in a 9x9 square of pixels. The overall scale and translation can be controlled by script variables inside custom blocks xform/yform (in the Pen palette)</comment></block><block s="clear"></block><block s="show"></block><block s="setSize"><l>2</l></block><block s="setColor"><color>4,0,0,1</color></block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>0</l><l>0</l><l>9</l><l>0</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>9</l><l>0</l><l>9</l><l>9</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>9</l><l>9</l><l>0</l><l>9</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>0</l><l>9</l><l>0</l><l>0</l></custom-block><custom-block s="cw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4.5</l><l>5.5</l><l>4.5</l><l>9</l><l>6</l><l>8.66</l><l>20</l></custom-block><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>6.5</l><l>9</l><l>6.5</l><l>8.5</l><l>7</l><l>9</l><l>20</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>6</l><l>7</l><l>6.94</l><l>8.76</l></custom-block><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4</l><l>7</l><l>4</l><l>9</l><l>3</l><l>5.27</l><l>20</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>3</l><l>5.27</l><l>5</l><l>4</l></custom-block><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4.5</l><l>7.125</l><l>6</l><l>7</l><l>3.5</l><l>6</l><l>20</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>3.5</l><l>6</l><l>6</l><l>4.5</l></custom-block><custom-block s="cw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4.5</l><l>2.5</l><l>6</l><l>4.5</l><l>3</l><l>.5</l><l>20</l></custom-block><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>2.5</l><l>-.37</l><l>3</l><l>.5</l><l>1.875</l><l>.41</l><l>20</l></custom-block><custom-block s="cw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4</l><l>2.27</l><l>5</l><l>4</l><l>4.5</l><l>.33</l><l>20</l></custom-block><custom-block s="cw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4.5</l><l>2.33</l><l>4.5</l><l>.33</l><l>2.53</l><l>2</l><l>20</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>2.53</l><l>2</l><l>1.875</l><l>.41</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>6</l><l>8.66</l><l>6.5</l><l>8.5</l><comment w="147.5" collapsed="true">Close the 2-3 gap on top</comment></custom-block><block s="up"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setColor"><color>18,157,0,1</color></block><block s="down"></block><block s="floodFill"></block><block s="hide"></block></script><script x="645" y="38.83333333333337"><block s="show"></block></script><script x="602" y="39.00000000000003"><block s="clear"></block></script><script x="690" y="37.16666666666666"><block s="hide"></block></script><script x="24.5" y="662.6666666666667"><block s="clear"><comment w="177.8076171875" collapsed="false">This test of ccw_arc draws a pacman</comment></block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>4</l><l>4</l><l>6</l><l>6</l></custom-block><custom-block s="ccw_arc around ( %s , %s ) from ( %s , %s ) to ( %s , %s ), %n steps"><l>4</l><l>4</l><l>6</l><l>6</l><l>6</l><l>2</l><l>20</l></custom-block><custom-block s="line from ( %s , %s ) to ( %s , %s )"><l>6</l><l>2</l><l>4</l><l>4</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Torniello" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>