turtlestitch/stitchcode/Examples/Dragon_curve_iterative.xml

1 wiersz
11 KiB
XML

<project name="dragon_curve_iterative" app="TurtleStitch 2.0, http://www.turtlestitch.org" version="1"><notes/><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" tempo="60" threadsafe="false" lines="round" codify="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="2"/></costumes><sounds><list id="3"/></sounds><variables/><blocks/><scripts/><sprites><sprite name="Sprite" idx="1" x="-70" y="60" heading="0" scale="1" rotation="1" draggable="true" costume="0" color="80,80,80" pen="tip" id="8"><costumes><list id="9"/></costumes><sounds><list id="10"/></sounds><variables/><blocks/><scripts><script x="28" y="18"><block s="receiveGo"/><block s="doSetVar"><l>steps</l><l>1000</l></block><block s="doSetVar"><l>step_length</l><l>5</l></block><block s="up"/><block s="clear"/><block s="gotoXY"><l>100</l><l>70</l></block><block s="setHeading"><l>0</l></block><block s="down"/><block s="doRepeat"><block var="steps"/><script><block s="forward"><block var="step_length"/></block><block s="doIfElse"><block s="reportEquals"><custom-block s="%n &amp; %n"><custom-block s="%n &lt;&lt; %n"><custom-block s="%n &amp; %n"><block var="steps"/><block s="reportProduct"><l>-1</l><block var="steps"/></block></custom-block><l>1</l></custom-block><block var="steps"/></custom-block><l>0</l></block><script><block s="turn"><l>90</l></block></script><script><block s="turnLeft"><l>90</l></block></script><comment w="203" collapsed="false">Uses bitwise operations to figure out which direction to take.
See "(Un)Folding the Dragon" on Wikipedia's page on the Dragon Curve for more details.</comment></block><block s="doChangeVar"><l>steps</l><l>-1</l></block></script></block></script><script x="336" y="421"><custom-block s="%n &lt;&lt; %n"><l/><l/><comment w="207" collapsed="false">Thanks to (snapusername) "DigiTechs" for the bitwise and/or and bitshifting operators based on javascript function calls
</comment></custom-block></script><script x="336" y="442"><custom-block s="%n &amp; %n"><l/><l/></custom-block></script><comment x="415" y="21" w="204" collapsed="false">DRAGON CURVE ITERATIVE
An iterative Example of generating a Dragon Curve.
</comment></scripts></sprite><watcher var="steps" style="normal" x="5" y="2.00000399999999" color="243,118,29"/><watcher var="step_length" style="normal" x="5" y="24.00000799999998" color="243,118,29"/><watcher scope="Stage" s="getLastMessage" style="normal" x="10" y="10" color="230,168,34" hidden="true"/></sprites></stage><hidden/><headers/><code/><blocks><block-definition s="%'one' &lt;&lt; %'two'" type="reporter" category="operators"><header/><code/><inputs><input type="%n"/><input type="%n"/></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a&lt;&lt;b;</l></block><list><block var="one"/><block var="two"/></list></block></block></script></block-definition><block-definition s="%'one' &gt;&gt; %'two'" type="reporter" category="operators"><header/><code/><inputs><input type="%n"/><input type="%n"/></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a&gt;&gt;b;</l></block><list><block var="one"/><block var="two"/></list></block></block></script></block-definition><block-definition s="%'one' &gt;&gt;&gt; %'two'" type="reporter" category="operators"><header/><code/><inputs><input type="%n"/><input type="%n"/></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a&gt;&gt;&gt;b;</l></block><list><block var="one"/><block var="two"/></list></block></block></script></block-definition><block-definition s="%'one' &amp; %'two'" type="reporter" category="operators"><header/><code/><inputs><input type="%n"/><input type="%n"/></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a&amp;b;</l></block><list><block var="one"/><block var="two"/></list></block></block></script></block-definition><block-definition s="%'one' | %'two'" type="reporter" category="operators"><header/><code/><inputs><input type="%n"/><input type="%n"/></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a|b;</l></block><list><block var="one"/><block var="two"/></list></block></block></script></block-definition></blocks><variables><variable name="steps"><l>0</l></variable><variable name="step_length"><l>5</l></variable></variables></project>