<snapdata remixID="11893455"><project name="Bezier curve editor" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><notes>I recently got interested in bezier curves again wanted to make an editor for making splines.&#xD;&#xD;- click stage to add a new anchor point&#xD;- move the green points to control the curve&#xD;- press a blue point to select it and to insert points&#xD;- press x on a blue point to delete it&#xD;- press c to toggle closed path&#xD;- press space to hide/unhide points&#xD;&#xD;Edit: Fixed an error</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Bezier curve editor"><notes>I recently got interested in bezier curves again wanted to make an editor for making splines.&#xD;&#xD;- click stage to add a new anchor point&#xD;- move the green points to control the curve&#xD;- press a blue point to select it and to insert points&#xD;- press x on a blue point to delete it&#xD;- press c to toggle closed path&#xD;- press space to hide/unhide points&#xD;&#xD;Edit: Fixed an error</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="draw cubic bezier %&apos;P0&apos; %&apos;P1&apos; %&apos;P2&apos; %&apos;P3&apos; steps %&apos;steps&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doGotoObject"><custom-block s="cubic bezier %l %l %l %l %n"><block var="P0"/><block var="P1"/><block var="P2"/><block var="P3"/><l>0</l></custom-block></block><block s="down"></block><block s="doFor"><l>i</l><l>1</l><block var="steps"/><script><block s="doGotoObject"><custom-block s="cubic bezier %l %l %l %l %n"><block var="P0"/><block var="P1"/><block var="P2"/><block var="P3"/><block s="reportQuotient"><block var="i"/><block var="steps"/></block></custom-block></block></script></block><block s="up"></block></script></block-definition><block-definition s="cubic bezier %&apos;P0&apos; %&apos;P1&apos; %&apos;P2&apos; %&apos;P3&apos; %&apos;t&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><block s="reportDifference"><l>1</l><block var="t"/></block><l>3</l></block><block var="P0"/></list></block><block s="reportVariadicProduct"><list><l>3</l><block s="reportPower"><block s="reportDifference"><l>1</l><block var="t"/></block><l>2</l></block><block var="t"/><block var="P1"/></list></block><block s="reportVariadicProduct"><list><l>3</l><block s="reportDifference"><l>1</l><block var="t"/></block><block s="reportPower"><block var="t"/><l>2</l></block><block var="P2"/></list></block><block s="reportVariadicProduct"><list><block s="reportPower"><block var="t"/><l>3</l></block><block var="P3"/></list></block></list></block></block></script></block-definition><block-definition s="normalize %&apos;vector&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>length</l><custom-block s="length of %l"><block var="vector"/></custom-block></custom-block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="length"/><l>0</l></list></block><block s="reportQuotient"><block var="vector"/><block var="length"/></block><block s="reportReshape"><block s="reportNewList"><list><l>0</l></list></block><list><block s="reportListAttribute"><l><option>length</option></l><block var="vector"/></block></list></block></block></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="value"/></block></script></block-definition><block-definition s="length of %&apos;vector&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><block s="reportPower"><block var="vector"/><l>2</l></block></block></block></block></script></block-definition><block-definition s="select anchor %&apos;obj&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="selected anchor"/><l><option>sprite</option></l></block><script><block s="doTellTo"><block var="selected anchor"/><block s="reifyScript"><script><block s="setEffect"><l><option>saturation</option></l><l>0</l></block></script><list></list></block><list></list></block></script></block><block s="doSetVar"><l>selected anchor</l><block var="obj"/></block><block s="doIf"><block s="reportIsA"><block var="selected anchor"/><l><option>sprite</option></l></block><script><block s="doTellTo"><block var="selected anchor"/><block s="reifyScript"><script><block s="setEffect"><l><option>saturation</option></l><l>-50</l></block></script><list></list></block><list></list></block></script></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="41,41,41,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="186"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="187"></list></costumes><sounds><list struct="atomic" id="188"></list></sounds><variables></variables><blocks></blocks><scripts><script x="29" y="27.333333333333343"><block s="receiveGo"></block><block s="setBackgroundColor"><color>41,41,41,1</color></block><block s="doSetVar"><l>show points?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="39" y="138"><block s="receiveKey"><l><option>d</option></l><list></list></block><custom-block s="select anchor %s"><l>0</l></custom-block></script><script x="76" y="253.33333333333337"><block s="receiveInteraction"><l><option>pressed</option></l></block><custom-block s="let %upvar be %s"><l>press pos</l><block s="reportMousePosition"></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><custom-block s="length of %l"><block s="reportDifference"><block var="press pos"/><block s="reportMousePosition"></block></block></custom-block><l>2</l></list></block><script><block s="doIf"><block var="show points?"/><script><block s="doBroadcast"><l>create new point</l><list><l>Anchor point</l></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>space</option></l></block></block></block></script></block></script></block></script><script x="60" y="750"><block s="receiveKey"><l><option>c</option></l><list></list></block><block s="doSetVar"><l>closed path?</l><block s="reportNot"><block var="closed path?"/></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>c</option></l></block></block></block></script><script x="65" y="516"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="doSetVar"><l>show points?</l><block s="reportNot"><block var="show points?"/></block></block><block s="doIf"><block s="reportNot"><block var="show points?"/></block><script><custom-block s="select anchor %s"><l>0</l></custom-block></script></block><block s="doBroadcast"><l>update point visibility</l><list></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>space</option></l></block></block></block></script></scripts><sprites select="1"><sprite name="Anchor point" idx="2" x="-76.94204685573365" y="-17.16399506781751" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="290"><costumes><list id="291"><item><ref mediaID="Anchor point_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="292"></list></sounds><blocks></blocks><variables><variable name="control back"><l>0</l></variable><variable name="control front"><l>0</l></variable></variables><scripts><script x="41" y="10"><block s="receiveGo"></block><block s="hide"></block><block s="doSetVar"><l>path</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>closed path?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script x="699" y="10.333333333333371"><block s="receiveOnClone"></block><block s="doSetVar"><l>control back</l><block s="newClone"><l>Control point</l></block></block><block s="doSetVar"><l>control front</l><block s="newClone"><l>Control point</l></block></block><custom-block s="let %upvar be %s"><l>idx</l><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block var="path"/></block></custom-block><block s="doTellTo"><block var="control back"/><block s="reifyScript"><script><block s="doGotoObject"><l></l></block><block s="doSetVar"><l><option>my anchor</option></l><l></l></block></script><list></list></block><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="idx"/><l>1</l></list></block><block s="reportDifference"><block s="getPosition"></block><block s="reportNewList"><list><l>50</l><l>0</l></list></block></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>position</option></l><block s="reportAttributeOf"><l>control front</l><block s="reportListItem"><block s="reportDifference"><block var="idx"/><l>1</l></block><block var="path"/></block></block></block><block s="getPosition"></block></list></block><l>2</l></block></block><block s="reportGet"><l><option>self</option></l></block></list></block><block s="doTellTo"><block var="control front"/><block s="reifyScript"><script><block s="doGotoObject"><l></l></block><block s="doSetVar"><l><option>my anchor</option></l><l></l></block></script><list></list></block><list><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block s="getPosition"></block></list></block><block s="reportAttributeOf"><l><option>position</option></l><block var="control back"/></block></block><block s="reportGet"><l><option>self</option></l></block></list></block><block s="doBroadcastAndWait"><l>update point visibility</l><list><block s="reportGet"><l><option>self</option></l></block></list></block></script><script x="684" y="469"><block s="receiveInteraction"><l><option>pressed</option></l></block><custom-block s="select anchor %s"><block s="reportGet"><l><option>self</option></l></block></custom-block><custom-block s="let %upvar be %s"><l>offset</l><block s="reportDifference"><block s="getPosition"></block><block s="reportMousePosition"></block></block></custom-block><block s="doUntil"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="reportMousePosition"></block><block var="offset"/></list></block></block></script></block></script><script x="687" y="649.1666666666666"><block s="receiveKey"><l><option>x</option></l><list></list></block><block s="doIf"><block s="reportNot"><block s="reportGet"><l><option>temporary?</option></l></block></block><script><block s="doStopThis"><l><option>this script</option></l></block></script></block><block s="doIf"><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="selected anchor"/><block s="reportGet"><l><option>self</option></l></block></list></block><script><block s="doSetVar"><l>selected anchor</l><l>0</l></block></script></block><block s="doDeleteFromList"><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block var="path"/></block><block var="path"/></block><block s="removeClone"></block></script></block></script><script x="1010" y="609.1666666666666"><block s="receiveMessage"><l>update point visibility</l><list></list></block><block s="doIf"><block s="reportGet"><l><option>temporary?</option></l></block><script><block s="doIfElse"><block var="show points?"/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script></block></script><script x="406" y="70.16666666666663"><block s="receiveInteraction"><l><option>stopped</option></l></block><block s="doSetVar"><l>selected anchor</l><l>0</l></block></script><script x="90" y="254"><block s="receiveMessage"><l>create new point</l><list></list></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block><custom-block s="let %upvar be %s"><l>new anchor</l><block s="newClone"><l><option>myself</option></l></block></custom-block><block s="doWait"><l>0</l></block><block s="doInsertInList"><block var="new anchor"/><block s="reportIfElse"><block s="reportIsA"><block var="selected anchor"/><l><option>sprite</option></l></block><block s="reportVariadicSum"><list><block s="reportListIndex"><block var="selected anchor"/><block var="path"/></block><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block></block><block var="path"/></block><custom-block s="select anchor %s"><block var="new anchor"/></custom-block></script></scripts></sprite><sprite name="Control point" idx="3" x="121.51371679336557" y="-60.01126437611342" heading="90" scale="0.75" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="0,116.68799999999999,132.6,1" pen="tip" id="556"><costumes><list id="557"><item><ref mediaID="Control point_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="558"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="hide"></block><block s="setScale"><l>75</l></block></script><script x="20" y="111.83333333333331"><block s="receiveInteraction"><l><option>pressed</option></l></block><custom-block s="select anchor %s"><block s="reportGet"><l><option>anchor</option></l></block></custom-block><block s="doDeclareVariables"><list><l>opposite</l></list></block><block s="doSetVar"><l>opposite</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><block s="reportGet"><l><option>self</option></l></block></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>anchor</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>parts</option></l></block></autolambda><list></list></block><list></list></block></block></block><custom-block s="let %upvar be %s"><l>offset</l><block s="reportDifference"><block s="getPosition"></block><block s="reportMousePosition"></block></block></custom-block><block s="doUntil"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="reportMousePosition"></block><block var="offset"/></list></block></block><block s="doTellTo"><block var="opposite"/><block s="reifyScript"><script><block s="doGotoObject"><l></l></block></script><list></list></block><list><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block s="reportAttributeOf"><l><option>position</option></l><block s="reportGet"><l><option>anchor</option></l></block></block></list></block><block s="getPosition"></block></block></list></block></script></block><block s="bubble"><l></l></block></script></scripts></sprite><sprite name="Pen" idx="1" x="-111.15752157829849" y="40.61652281134395" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="216,46,0,0.5" pen="tip" id="660"><costumes><list struct="atomic" id="661"></list></costumes><sounds><list struct="atomic" id="662"></list></sounds><blocks><block-definition s="draw" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportAskFor"><l>Anchor point</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>clones</option></l></block></autolambda><list></list></block><list></list></block><comment w="259" collapsed="false">prevent error from happening when project is stopped</comment></block><script><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="setSize"><l>2</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block><l>1</l></list></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block><block s="reportIfElse"><block var="closed path?"/><l>0</l><l>1</l></block></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><block var="path"/></block><block var="selected anchor"/></list></block><script><block s="setColor"><color>128,183,255,1</color></block></script><script><block s="setColor"><color>54,84,255,1</color></block></script></block><custom-block s="let %upvar be %s"><l>P1</l><block s="reportListItem"><block var="i"/><block var="path"/></block></custom-block><custom-block s="let %upvar be %s"><l>P2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="path"/></block></block><l>1</l></list></block><block var="path"/></block></custom-block><custom-block s="draw cubic bezier %l %l %l %l steps %n"><block s="reportAttributeOf"><l><option>position</option></l><block var="P1"/></block><block s="reportAttributeOf"><l><option>position</option></l><block s="reportAttributeOf"><l>control front</l><block var="P1"/></block></block><block s="reportAttributeOf"><l><option>position</option></l><block s="reportAttributeOf"><l>control back</l><block var="P2"/></block></block><block s="reportAttributeOf"><l><option>position</option></l><block var="P2"/></block><l>25</l></custom-block></script></block></script></block><block s="doIf"><block var="show points?"/><script><block s="setSize"><l>1</l></block><block s="doForEach"><l>anchor</l><block var="path"/><script><block s="doGotoObject"><block s="reportAttributeOf"><l><option>position</option></l><block s="reportAttributeOf"><l>control back</l><block var="anchor"/></block></block></block><block s="setColor"><color>240,177,0,1</color></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block><block s="down"></block><block s="doGotoObject"><block var="anchor"/></block><block s="setColor"><color>216,46,0,1</color></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block><block s="doGotoObject"><block s="reportAttributeOf"><l><option>position</option></l><block s="reportAttributeOf"><l>control front</l><block var="anchor"/></block></block></block><block s="up"></block></script></block></script></block></script></block-definition></blocks><variables></variables><scripts><script x="32" y="36"><block s="receiveGo"></block><block s="hide"></block><block s="doForever"><script><block s="doWarp"><script><block s="clear"></block><custom-block s="draw" scope="local"></custom-block></script></block></script></block></script></scripts></sprite><watcher var="path" style="normal" x="6.075949367088859" y="6.075949367088624" color="243,118,29" hidden="true"/><watcher scope="Anchor point" var="control back" style="normal" x="6.075949367088859" y="18.83544425316456" color="243,118,29" hidden="true"/><watcher scope="Anchor point" var="control front" style="normal" x="6.075949367088859" y="31.59493913924051" color="243,118,29" hidden="true"/><watcher var="selected anchor" style="normal" x="6.083650190113815" y="6.083650190114063" color="243,118,29" hidden="true"/><watcher var="show points?" style="normal" x="5.985037406483555" y="5.985037406483783" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="path"><list id="840"><item></item><item></item><item></item><item></item></list></variable><variable name="selected anchor"></variable><variable name="show points?"><bool>true</bool></variable><variable name="closed path?"><bool>false</bool></variable></variables></scene></scenes></project><media name="Bezier curve editor" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="8" center-y="8" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAASFJREFUOE+dk08rBVEYxn+PkiwoWVHKR7hX7OxdssCHEFfNHSVFsaDYWMxM+ZMPgYW49nYKH0EpOykbSXk15k4zXMM93t15n+f9neeczhFF5dsQMNiQ7wh0/ZNVTU3fljA8YOCbdo+ICLST72eAWWunkyNgsjBVIpzywgyHeosXGaBmx8DUH8OpfEKo6Qzg2Rxiv8XhxGbME+kgSVCzG6DkBIBbQpWFb30YD47DiV30i0Ub5p2rfwHaGIkTlDDiI7iXKItl6+KVZ/dpoIPu9BLrwJgj5IJQlQTg2zjGmRNATBDoPHtInm0hVlqCGNtEWv36EpMkGxhrv0LEJoHWU0/zZ/JsFFEFKkBPw/gE1DH2iHSZ36AZkFcXrPdzuavHolQf37xIXo2Vs7MAAAAASUVORK5CYII=" mediaID="Anchor point_cst_Untitled"/><costume name="Untitled" center-x="7" center-y="7.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAAAXNSR0IArs4c6QAAAQdJREFUOE+l0jFKA0EYxfH/SwoPsK2NIKQUFLKxEhtdAhbqHQQFL6CoGNELCIreQS2EsAmCWGkCgpaCaJM2B7BIPplNdhE1soNTDd+8HzMDT4xY4S3j7qg1T+e3iL4OZ+vM9YtsAqvfwheFHsf3Ve7SeQbDmF3E/qgXJHNjrxVRc9sElmO2JA7/RMNDM7bbEUeqxEybeMyDsmcaMwobnAFrPhA4d/ANmPCE7w6aJ0ri/4JPwJTnrc8Km9QwdrygOFD5hkA9XoAgJ+5akdKgAE2WZVzmgSZW2gtcZZWrNFgy4wQNyv1jGR2JjYdFrrPKpaHJOmNBgXUgQpSG/XTfiLt9Tl+rfKTZT4a7RJ8484YhAAAAAElFTkSuQmCC" mediaID="Control point_cst_Untitled"/></media></snapdata>