turtlestitch/libraries/VectorAndFill.xml

2 wiersze
59 KiB
XML

<blocks app="TurtleStitch 2.7, http://www.turtlestitch.org" version="2"><block-definition s="move %&apos;distance&apos; style %&apos;styleScript&apos; by %&apos;stepLength&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:移动 _ 步 方式 _ 步长 _&#xD;</translations><inputs><input type="%n">50</input><input type="%cmdRing"></input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>dist</l><l>dir</l></list></block><block s="doIf"><block s="reportEquals"><block var="stepLength"/><l>0</l></block><script><block s="doSetVar"><l>stepLength</l><block s="reportMonadic"><l><option>abs</option></l><block var="distance"/></block></block></script></block><block s="doSetVar"><l>dir</l><l>1</l></block><block s="doIf"><block s="reportLessThan"><block var="distance"/><l>0</l></block><script><block s="doSetVar"><l>dir</l><l>-1</l></block></script></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript"/></custom-block><script><block s="doSetVar"><l>styleScript</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doSetVar"><l>dist</l><block s="reportMonadic"><l><option>abs</option></l><block var="distance"/></block></block><block s="doUntil"><block s="reportLessThan"><block var="dist"/><block s="reportProduct"><block var="stepLength"/><l>2</l></block></block><script><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><block var="dir"/><block var="stepLength"/></block></list></block><block s="doChangeVar"><l>dist</l><block s="reportProduct"><l>-1</l><block var="stepLength"/></block></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="dist"/><block s="reportProduct"><block var="stepLength"/><l>1.5</l></block></block><script><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><block var="dir"/><block var="stepLength"/></block></list></block><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><block var="dir"/><block s="reportDifference"><block var="dist"/><block var="stepLength"/></block></block></list></block></script><script><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><block var="dir"/><block var="dist"/></block></list></block></script></block></script></block-definition><block-definition s="arc %&apos;distance&apos; angle %&apos;angle&apos; in %&apos;sections&apos; turn %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:圆弧 _ 步 角度 _ 分段数 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">30</input><input type="%n">10</input><input type="%txt">right<options>right&#xD;left</options></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>r</l><l>segLength</l><l>dir</l></list></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript"/></custom-block><script><block s="doSetVar"><l>styleScript</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>r</l><block s="reportQuotient"><block s="reportQuotient"><block var="distance"/><l>2</l></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></block></block><block s="doSetVar"><l>segLength</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportProduct"><block s="reportProduct"><block s="reportProduct"><block var="r"/><block var="r"/></block><l>2</l></block><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></block></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>right</l></block><script><block s="turnLeft"><block s="reportQuotient"><block s="reportDifference"><block var="angle"/><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block><l>2</l></block></block><block s="doRepeat"><block var="sections"/><script><block s="doRun"><block var="styleScript"/><list><block var="segLength"/></list></block><block s="turn"><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></script></block></script><script><block s="turn"><block s="reportQuotient"><block s="reportDifference"><block var="angle"/><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block><l>2</l></block></block><block s="doRepeat"><block var="sections"/><script><block s="doRun"><block var="styleScript"/><list><block var="segLength"/></list></block><block s="turnLeft"><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></script></block></script></block><block s="setHeading"><block var="dir"/></block></script><scripts><script x="484.0000019999997" y="318.0000019999999"><block s="reportDifference"><l></l><l>1</l></block></script><script x="514.0000019999997" y="445.00000199999994"><block s="reportDifference"><l></l><l>1</l></block></script></scripts></block-definition><block-definition s="go to %&apos;dest&apos; style %&apos;styleScript&apos; by %&apos;stepLength&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:移到 _ 方式 _ 步长 _&#xD;</translations><inputs><input type="%l"></input><input type="%cmdRing">no&#xD; &#xD; <options>no&#xD;foldLine&#xD;randomFoldLine&#xD;curveLine</options></input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>distance</l><l>orgDir</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>orgDir</l><block s="direction"></block></block><block s="doIf"><block s="reportEquals"><block var="stepLength"/><l>0</l></block><script><block s="doSetVar"><l>stepLength</l><custom-block s="lineLength %l"><block var="dest"/></custom-block></block></script></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript"/></custom-block><script><block s="doSetVar"><l>styleScript</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doSetVar"><l>distance</l><custom-block s="lineLength %l"><block var="dest"/></custom-block></block><block s="doFaceTowards"><block var="dest"/></block><block s="doUntil"><block s="reportLessThan"><block var="distance"/><block s="reportSum"><block var="stepLength"/><l>0.5</l></block></block><script><block s="doRun"><block var="styleScript"/><list><block var="stepLength"/></list></block><block s="doSetVar"><l>distance</l><custom-block s="lineLength %l"><block var="dest"/></custom-block></block></script></block><block s="doRun"><block var="styleScript"/><list><block var="distance"/></list></block><block s="setHeading"><block var="orgDir"/></block></script></block></script></block-definition><block-definition s="arc %&apos;distance&apos; angle %&apos;angle&apos; turn %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:圆弧 _ 步 角度 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">30</input><input type="%txt">right<options>right&#xD;left</options></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>r</l><l>segLength</l><l>dir</l><l>sections</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportLessThan"><block var="angle"/><l>360</l></block><script><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript"/></custom-block><script><block s="doSetVar"><l>styleScript</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>r</l><block s="reportQuotient"><block s="reportQuotient"><block var="distance"/><l>2</l></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></block></block><block s="doSetVar"><l>sections</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportProduct"><block s="reportProduct"><block var="r"/><block s="reportQuotient"><block var="angle"/><l>360</l></block></block><block s="reportQuotient"><l>6.283</l><block s="reportIfElse"><block s="reportGreaterThan"><custom-block s="default stitch length"></custom-block><l>0</l></block><custom-block s="default stitch length"></custom-block><l>10</l></block></block></block></block></block><block s="doSetVar"><l>segLength</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportProduct"><block s="reportProduct"><block s="reportProduct"><block var="r"/><block var="r"/></block><l>2</l></block><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></block></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>right</l></block><script><block s="turnLeft"><block s="reportQuotient"><block s="reportDifference"><block var="angle"/><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block><l>2</l></block></block><block s="doRepeat"><block var="sections"/><script><block s="doRun"><block var="styleScript"/><list><block var="segLength"/></list></block><block s="turn"><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></script></block></script><script><block s="turn"><block s="reportQuotient"><block s="reportDifference"><block var="angle"/><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block><l>2</l></block></block><block s="doRepeat"><block var="sections"/><script><block s="doRun"><block var="styleScript"/><list><block var="segLength"/></list></block><block s="turnLeft"><block s="reportQuotient"><block var="angle"/><block var="sections"/></block></block></script></block></script></block><block s="setHeading"><block var="dir"/></block></script></block></script></block></script></block-definition><block-definition s="calcAngle start %&apos;start&apos; end %&apos;end&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:倾斜角 起点 _ 终点 _&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>relativeX</l><l>relativeY</l><l>angle</l></list></block><block s="doSetVar"><l>relativeY</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="end"/></block><block s="reportListItem"><l>2</l><block var="start"/></block></block></block><block s="doSetVar"><l>relativeX</l><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="end"/></block><block s="reportListItem"><l>1</l><block var="start"/></block></block></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="relativeX"/><l>0</l></block><block s="reportEquals"><block var="relativeY"/><l>0</l></block></block><script><block s="doReport"><l>90</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="relativeX"/><l>0</l></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="relativeY"/><l>0</l></block><script><block s="doReport"><l>90</l></block></script><script><block s="doReport"><l>270</l></block></script></block></script></block><block s="doSetVar"><l>angle</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block var="relativeY"/><block var="relativeX"/></block></block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="angle"/><l>0</l></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="relativeX"/><l>0</l></block><script><block s="doReport"><block var="angle"/></block></script><script><block s="doReport"><block s="reportSum"><l>180</l><block var="angle"/></block></block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="relativeX"/><l>0</l></block><script><block s="doReport"><block s="reportSum"><l>180</l><block var="angle"/></block></block></script><script><block s="doReport"><block s="reportSum"><l>360</l><block var="angle"/></block></block></script></block></script></block></script></block-definition><block-definition s="translate angle %&apos;direction&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="188.00000000000003" collapsed="false">translate angle to or from polar coordinates</comment><header></header><code></code><translations>zh_CN:角度转换 _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportModulus"><block s="reportSum"><block s="reportDifference"><l>90</l><block var="direction"/></block><l>360</l></block><l>360</l></block></block></script></block-definition><block-definition s="pointsToVector %&apos;points&apos;" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:点集转换为矢量 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>vector</l><l>lastPoint</l><l>lastDir</l><l>thisDir</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>vector</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block><l>2</l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>lastDir</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="points"/></block><block s="reportListItem"><l>2</l><block var="points"/></block></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportMonadic"><l><option>neg</option></l><block var="lastDir"/></block><custom-block s="lineLength %l"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="points"/></block><block s="reportListItem"><l>2</l><block var="points"/></block></list></block></custom-block></list></block><block var="vector"/></block><block s="doSetVar"><l>lastPoint</l><block s="reportListItem"><l>2</l><block var="points"/></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block><l>2</l></block><script><block s="doFor"><l>i</l><l>3</l><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="points"/></block><l>!</l></block><script><block s="doAddToList"><l>!</l><block var="vector"/></block></script><script><block s="doSetVar"><l>thisDir</l><custom-block s="calcAngle start %l end %l"><block var="lastPoint"/><block s="reportListItem"><block var="i"/><block var="points"/></block></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><custom-block s="translate angle %n"><custom-block s="translate angle %n"><block s="reportDifference"><block var="lastDir"/><block var="thisDir"/></block></custom-block></custom-block><custom-block s="lineLength %l"><block s="reportNewList"><list><block var="lastPoint"/><block s="reportListItem"><block var="i"/><block var="points"/></block></list></block></custom-block></list></block><block var="vector"/></block><block s="doSetVar"><l>lastPoint</l><block s="reportListItem"><block var="i"/><block var="points"/></block></block><block s="doSetVar"><l>lastDir</l><block var="thisDir"/></block></script></block></script></block></script></block></script></block><block s="doReport"><block var="vector"/></block></script></block-definition><block-definition s="drawVector %&apos;vector&apos; size %&apos;size&apos; style %&apos;styleScript&apos; mirrored %&apos;mirrored&apos; stitch length %&apos;seam&apos;" type="command" category="pen"><header></header><code></code><translations>zh_CN:绘制矢量 _ 比例 _ 方式 _ 镜像 _ 针脚长度 _&#xD;</translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%cmdRing"></input><input type="%b">false</input><input type="%n">6</input></inputs><script><block s="doDeclareVariables"><list><l>dir</l><l>newVector</l></list></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript"/></custom-block><script><block s="doSetVar"><l>styleScript</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>newVector</l><custom-block s="convert vector %l scale %n by seam %n"><block var="vector"/><block var="size"/><block var="seam"/></custom-block></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><block var="newVector"/><script><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block var="item"/><l>!</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><l>!</l></block></block><script><block s="up"></block></script><script><block s="doIfElse"><block s="reportNot"><block var="mirrored"/></block><script><block s="turn"><block s="reportListItem"><l>1</l><block var="item"/></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="#"/><l>1</l></block><script><block s="turn"><block s="reportListItem"><l>1</l><block var="item"/></block></block><block s="setHeading"><block s="reportMonadic"><l><option>neg</option></l><block s="direction"></block></block></block></script><script><block s="turnLeft"><block s="reportListItem"><l>1</l><block var="item"/></block></block></script></block></script></block><custom-block s="move %n style %cmdRing by %n"><block s="reportListItem"><l>2</l><block var="item"/></block><block var="styleScript"/><block var="seam"/></custom-block><block s="doIf"><block s="reportNot"><block s="isPenDown"></block></block><script><block s="down"></block></script></block></script></block></script></custom-block><block s="setHeading"><block var="dir"/></block></script></block-definition><block-definition s="copy list %&apos;l&apos;" type="reporter" category="lists"><header></header><code></code><translations>zh_CN:复制列表 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><block var="l"/></block></block></script></block-definition><block-definition s="reverse %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="223" collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><translations>ca:capgira _&#xD;zh_CN:倒置列表 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>helper</l></list></block><block s="doSetVar"><l>helper</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="input"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><block s="evaluate"><block var="helper"/><list><block s="reportCDR"><block var="input"/></block><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="input"/></block><block var="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><block s="doWarp"><script><block s="doReport"><block s="evaluate"><block var="helper"/><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definition s="%&apos;#&apos; keep items %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="217.1428571428572" collapsed="false">This block makes a new list containing selected items from the given list, like the primitive KEEP block.&#xD;&#xD;What&apos;s different is that it provides the # variable for use in your predicate function. It will contain the item number (in the original list) of the item being examined by the predicate.</comment><header></header><code></code><translations>ca:_ manté els elements on _ de _&#xD;zh_CN:_ 保留满足条件 _ 的项,来源 _&#xD;</translations><inputs><input type="%upvar"></input><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>keep-helper</l></list></block><block s="doSetVar"><l>keep-helper</l><block s="reifyScript"><script><block s="doWarp"><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>#</l><block var="count"/></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="evaluate"><block var="keep-helper"/><list><block s="reportCDR"><block var="data"/></block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><script><block s="doReport"><block s="evaluate"><block var="keep-helper"/><list><block s="reportCDR"><block var="data"/></block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></script></block></script></block></script><list><l>data</l><l>count</l></list></block></block><block s="doReport"><block s="evaluate"><block var="keep-helper"/><list><block var="data"/><l>1</l></list></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;zh_CN:_ 对每个项目 _ 来自列表 _ 执行 _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block-definition><block-definition s="convert vector %&apos;vector&apos; scale %&apos;scale&apos; by seam %&apos;seam&apos;" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:转换矢量 _ 比例 _ 针脚长度 _&#xD;</translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">6</input></inputs><script><block s="doDeclareVariables"><list><l>newVector</l><l>deflection</l><l>buffer</l><l>length</l><l>tempV</l></list></block><block s="doSetVar"><l>newVector</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>deflection</l><l>0</l></block><block s="doIfElse"><block s="reportEquals"><block var="seam"/><l>0</l></block><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="vector"/><script><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block var="item"/><l>!</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><l>!</l></block></block><script><block s="doAddToList"><l>!</l><block var="newVector"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="item"/></block><block s="reportProduct"><block s="reportListItem"><l>2</l><block var="item"/></block><block var="scale"/></block></list></block><block var="newVector"/></block></script></block></script></block></script></block></script><script><block s="doWarp"><script><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><block var="vector"/><script><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block var="item"/><l>!</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><l>!</l></block></block><script><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="buffer"/></block></block><script><block s="doAddToList"><block var="buffer"/><block var="newVector"/></block><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list></list></block></block></script></block><block s="doAddToList"><l>!</l><block var="newVector"/></block></script><script><block s="doSetVar"><l>length</l><block s="reportProduct"><block s="reportListItem"><l>2</l><block var="item"/></block><block var="scale"/></block></block><block s="doIf"><block s="reportAnd"><block s="reportNot"><block s="reportListIsEmpty"><block var="buffer"/></block></block><block s="reportLessThan"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><l>180</l><block s="reportListItem"><l>1</l><block var="item"/></block></block></block><l>95</l></block></block><script><block s="doAddToList"><block var="buffer"/><block var="newVector"/></block><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportListIsEmpty"><block var="buffer"/></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="length"/><block s="reportProduct"><block var="seam"/><l>0.9</l></block></block><script><block s="doIfElse"><block s="reportEquals"><block var="deflection"/><l>0</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="item"/></block><block var="length"/></list></block><block var="newVector"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="deflection"/></block><block var="length"/></list></block><block var="newVector"/></block><block s="doSetVar"><l>deflection</l><l>0</l></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="deflection"/><l>0</l></block><script><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="item"/></block><block var="length"/></list></block></block></script><script><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="deflection"/></block><block var="length"/></list></block></block><block s="doSetVar"><l>deflection</l><l>0</l></block></script></block></script></block></script><script><block s="doSetVar"><l>tempV</l><custom-block s="conbine 2 vectors vector1 %l vector2 %l deflection %upvar"><block var="buffer"/><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="deflection"/></block><block var="length"/></list></block><l>defl</l></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><l>2</l><block var="tempV"/></block><block s="reportProduct"><block var="seam"/><l>0.9</l></block></block><script><block s="doAddToList"><block var="tempV"/><block var="newVector"/></block><block s="doSetVar"><l>buffer</l><block s="reportNewList"><list></list></block></block></script><script><block s="doSetVar"><l>buffer</l><block var="tempV"/></block></script></block><block s="doSetVar"><l>deflection</l><block var="defl"/></block></script></block></script></block></script></custom-block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="buffer"/></block></block><script><block s="doAddToList"><block var="buffer"/><block var="newVector"/></block></script></block></script></block></script></block><block s="doReport"><block var="newVector"/></block></script></block-definition><block-definition s="conbine 2 vectors vector1 %&apos;vector1&apos; vector2 %&apos;vector2&apos; deflection %&apos;deflection&apos;" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:合并矢量 矢量1 _ 矢量2 _ 偏移角度 _&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>angleC</l><l>a</l><l>b</l><l>c</l><l>angleB</l><l>angleA</l><l>angleV2</l></list></block><block s="doSetVar"><l>a</l><block s="reportListItem"><l>2</l><block var="vector1"/></block></block><block s="doSetVar"><l>b</l><block s="reportListItem"><l>2</l><block var="vector2"/></block></block><block s="doSetVar"><l>angleV2</l><block s="reportListItem"><l>1</l><block var="vector2"/></block></block><block s="doIf"><block s="reportGreaterThan"><block var="angleV2"/><l>180</l></block><script><block s="doSetVar"><l>angleV2</l><block s="reportDifference"><block var="angleV2"/><l>360</l></block></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="angleV2"/><l>0</l></block><script><block s="doSetVar"><l>angleC</l><block s="reportDifference"><l>180</l><block var="angleV2"/></block></block></script><script><block s="doSetVar"><l>angleC</l><block s="reportSum"><l>180</l><block var="angleV2"/></block></block></script></block><block s="doSetVar"><l>c</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportSum"><block s="reportPower"><block var="a"/><l>2</l></block><block s="reportPower"><block var="b"/><l>2</l></block></block><block s="reportProduct"><block s="reportProduct"><l>2</l><block s="reportProduct"><block var="a"/><block var="b"/></block></block><block s="reportMonadic"><l><option>cos</option></l><block var="angleC"/></block></block></block></block></block><block s="doSetVar"><l>angleA</l><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportSum"><block s="reportPower"><block var="b"/><l>2</l></block><block s="reportPower"><block var="c"/><l>2</l></block></block><block s="reportPower"><block var="a"/><l>2</l></block></block><block s="reportProduct"><l>2</l><block s="reportProduct"><block var="b"/><block var="c"/></block></block></block></block></block><block s="doSetVar"><l>angleB</l><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportSum"><block s="reportPower"><block var="a"/><l>2</l></block><block s="reportPower"><block var="c"/><l>2</l></block></block><block s="reportPower"><block var="b"/><l>2</l></block></block><block s="reportProduct"><l>2</l><block s="reportProduct"><block var="a"/><block var="c"/></block></block></block></block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="angleV2"/><l>0</l></block><script><block s="doSetVar"><l>deflection</l><block var="angleA"/></block><block s="doReport"><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block var="vector1"/></block><block var="angleB"/></block><block var="c"/></list></block></block></script><script><block s="doSetVar"><l>deflection</l><block s="reportMonadic"><l><option>neg</option></l><block var="angleA"/></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="vector1"/></block><block var="angleB"/></block><block var="c"/></list></block></block></script></block></script></block-definition><block-definition s="draw from %&apos;input&apos;" type="command" category="pen"><header></header><code></code><translations>zh_CN:按目标点及弧度绘制 _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doForEach"><l>item</l><block s="reportTextSplit"><block var="input"/><l><option>line</option></l></block><script><block s="doIfElse"><block s="reportEquals"><block var="item"/><l>!</l></block><script><block s="up"></block></script><script><block s="doSetVar"><l>line</l><block s="reportTextSplit"><block var="item"/><l><option>csv</option></l></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="line"/></block><l>2</l></block><script><block s="doIfElse"><block s="isPenDown"></block><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><l>3</l><block var="line"/></block><l>0</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="line"/></block><l>3</l></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></list></block><block s="reifyScript"><script><custom-block s="arc %n angle %n turn %txt style %cmdRing"><l></l><block s="reportListItem"><l>3</l><block var="line"/></block><l>right</l><block s="reifyScript"><script></script><list></list></block></custom-block></script><list></list></block><l>0</l></custom-block></script><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></list></block><block s="reifyScript"><script><custom-block s="arc %n angle %n in %n turn %txt style %cmdRing"><l></l><block s="reportListItem"><l>3</l><block var="line"/></block><block s="reportListItem"><l>4</l><block var="line"/></block><l>right</l><block s="reifyScript"><script></script><list></list></block></custom-block></script><list></list></block><l>0</l></custom-block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>3</l><block var="line"/></block><l>0</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="line"/></block><l>3</l></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></list></block><block s="reifyScript"><script><custom-block s="arc %n angle %n turn %txt style %cmdRing"><l></l><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><l>3</l><block var="line"/></block></block><l>left</l><block s="reifyScript"><script></script><list></list></block></custom-block></script><list></list></block><l>0</l></custom-block></script><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></list></block><block s="reifyScript"><script><custom-block s="arc %n angle %n in %n turn %txt style %cmdRing"><l></l><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><l>3</l><block var="line"/></block></block><block s="reportListItem"><l>4</l><block var="line"/></block><l>left</l><block s="reifyScript"><script></script><list></list></block></custom-block></script><list></list></block><l>0</l></custom-block></script></block></script><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></list></block><block s="reifyScript"><script></script><list></list></block><l>2</l></custom-block></script></block></script></block></script><script><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="down"></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="begin tracking" type="command" category="motion"><header></header><code></code><translations>zh_CN:开始跟踪&#xD;</translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if (this.tracked) {&#xD; return;&#xD;} else {&#xD; this.tracked = true;&#xD;}&#xD;this.tracks = new List();&#xD;this.backupSetPosition = this.setPosition;&#xD;this.down = function() {&#xD; var len;&#xD; this.isDown = true;&#xD; len = this.tracks.length();&#xD; if (len == 0 || this.tracks.at(len) == &apos;!&apos;) {&#xD; this.tracks.add(new List([this.xPosition(),this.yPosition()]));&#xD; } &#xD;} &#xD;this.setPosition = function (aPoint, justMe) {&#xD; var len,lastX,lastY;&#xD; len = this.tracks.length();&#xD; if (len == 0 &amp;&amp; this.isDown) {&#xD; this.tracks.add(new List([this.xPosition(),this.yPosition()]));&#xD; } &#xD; this.backupSetPosition(aPoint, justMe); &#xD; len = this.tracks.length();&#xD; if (this.isDown) {&#xD; if (this.tracks.at(len) == &apos;!&apos;){&#xD; this.tracks.add(new List([this.xPosition(),this.yPosition()])); &#xD; }else{ &#xD; lastX = this.tracks.at(len).at(1);&#xD; lastY = this.tracks.at(len).at(2);&#xD; if (lastX != this.xPosition() || lastY != this.yPosition()) {&#xD; this.tracks.add(new List([this.xPosition(),this.yPosition()]));&#xD; }&#xD; }&#xD; }else{&#xD; if (len != 0 &amp;&amp; this.tracks.at(len) != &apos;!&apos;)&#xD; {&#xD; lastX = this.tracks.at(len).at(1);&#xD; lastY = this.tracks.at(len).at(2); &#xD; if (lastX != this.xPosition() || lastY != this.yPosition()) &#xD; {&#xD; this.tracks.add(&apos;!&apos;);&#xD; }&#xD; } &#xD; }&#xD;}</l></block><list></list></block></script></block-definition><block-definition s="my tracks" type="reporter" category="motion"><header></header><code></code><translations>zh_CN:我的轨迹&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.tracks;</l></block><list></list></block></block></script></block-definition><block-definition s="reset tracking" type="command" category="motion"><header></header><code></code><translations>zh_CN:重置轨迹&#xD;</translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if (this.tracked) {&#xD; this.tracks.clear();&#xD;}</l></block><list></list></block></script></block-definition><block-definition s="close tracking" type="command" category="motion"><header></header><code></code><translations>zh_CN:取消跟踪&#xD;</translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if (this.tracked) {&#xD; this.tracks.clear();&#xD; this.tracked = false;&#xD; this.setPosition = this.backupSetPosition;&#xD; this.down = function() {&#xD; this.isDown = true;&#xD; }&#xD;}</l></block><list></list></block></script></block-definition><block-definition s="trackToVector %&apos;track&apos;" type="reporter" category="motion"><variables><list struct="atomic" id="1919">trackPoints</list></variables><header></header><code></code><translations>zh_CN:轨迹转换为矢量 _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><custom-block s="begin tracking"></custom-block><custom-block s="reset tracking"></custom-block><block s="doRun"><block var="track"/><list></list></block><block s="doSetVar"><l>trackPoints</l><custom-block s="copy list %l"><custom-block s="my tracks"></custom-block></custom-block></block><custom-block s="close tracking"></custom-block><block s="doReport"><custom-block s="pointsToVector %l"><block var="trackPoints"/></custom-block></block></script></block-definition><block-definition s="link points %&apos;points&apos; style %&apos;style&apos; by %&apos;stepLen&apos; stitchToFirst %&apos;stitchToFirst&apos; backToFirst %&apos;backToFirst&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:连接点集 _ 方式 _ 步长 _ 连接到第一点 _ 回到第一点 _&#xD;</translations><inputs><input type="%l"></input><input type="%cmdRing"></input><input type="%n">10</input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="style"/></custom-block><script><block s="doSetVar"><l>style</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doIfElse"><block var="stitchToFirst"/><script><block s="down"></block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l>1</l><block var="points"/></block><block var="style"/><block var="stepLen"/></custom-block></script><script><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="points"/></block></block><block s="down"></block></script></block><block s="doForEach"><l>item</l><block s="reportCDR"><block var="points"/></block><script><block s="doIfElse"><block s="reportEquals"><block var="item"/><l>!</l></block><script><block s="up"></block></script><script><custom-block s="go to %l style %cmdRing by %n"><block var="item"/><block var="style"/><block var="stepLen"/></custom-block><block s="doIf"><block s="reportNot"><block s="isPenDown"></block></block><script><block s="down"></block></script></block></script></block></script></block><block s="doIf"><block var="backToFirst"/><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l>1</l><block var="points"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block></script></block-definition><block-definition s="link lines %&apos;lines&apos; style %&apos;style&apos; by %&apos;stepLen&apos; type %&apos;type&apos; beforeFilling stitchToFirst %&apos;stitchToFirst&apos; backToFirst %&apos;backToFirst&apos; afterFilling goToFirst %&apos;gotoFirst&apos; goToLast %&apos;gotoLast&apos;" type="command" category="motion"><variables><list struct="atomic" id="2018">line1,line2</list></variables><header></header><code></code><translations>zh_CN:连接线段 _ 方式 _ 步长 _ 类型 _ 填充前 连接到第一点 _ 回到第一点 _ 填充后 去第一点 _ 去最后一点 _&#xD;</translations><inputs><input type="%l"></input><input type="%cmdRing"></input><input type="%n">10</input><input type="%txt" readonly="true">parallel<options>normal&#xD;parallel&#xD;curve&#xD;interlaced&#xD;random</options></input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doIf"><block s="reportEquals"><block var="type"/><l></l></block><script><block s="doSetVar"><l>type</l><l>normal</l></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><l>2</l></block><l>0</l></block><script><block s="doSetVar"><l>line1</l><custom-block s="%upvar keep items %predRing from %l"><l>#</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="#"/><block s="reportSum"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><l>2</l></block><l>1</l></block></block></autolambda><list></list></block><block var="lines"/></custom-block></block><block s="doSetVar"><l>line2</l><custom-block s="%upvar keep items %predRing from %l"><l>#</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="#"/><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><l>2</l></block></block></autolambda><list></list></block><block var="lines"/></custom-block></block></script><script><block s="doSetVar"><l>line1</l><custom-block s="%upvar keep items %predRing from %l"><l>#</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="#"/><block s="reportSum"><block s="reportQuotient"><block s="reportSum"><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><l>1</l></block><l>2</l></block><l>1</l></block></block></autolambda><list></list></block><block var="lines"/></custom-block></block><block s="doSetVar"><l>line2</l><custom-block s="%upvar keep items %predRing from %l"><l>#</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="#"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><l>1</l></block><l>2</l></block></block></autolambda><list></list></block><block var="lines"/></custom-block></block></script></block><block s="doSetVar"><l>line2</l><custom-block s="reverse %l"><block var="line2"/></custom-block></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="style"/></custom-block><script><block s="doSetVar"><l>style</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doIfElse"><block var="stitchToFirst"/><script><block s="down"></block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l>1</l><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block></script><script><block s="doIf"><block var="backToFirst"/><script><custom-block s="link points %l style %cmdRing by %n stitchToFirst %b backToFirst %b"><custom-block s="reverse %l"><block var="lines"/></custom-block><block s="reifyScript"><script></script><list></list></block><l>10</l><l><bool>false</bool></l><l><bool>false</bool></l></custom-block></script></block></script></block><block s="down"></block><block s="doIf"><block s="reportEquals"><block var="type"/><l>normal</l></block><script><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block var="line2"/></block><block var="style"/><block var="stepLen"/></custom-block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block><block s="doIf"><block var="gotoFirst"/><script><custom-block s="link points %l style %cmdRing by %n stitchToFirst %b backToFirst %b"><custom-block s="reverse %l"><block var="line1"/></custom-block><block s="reifyScript"><script></script><list></list></block><l>10</l><l><bool>false</bool></l><l><bool>false</bool></l></custom-block></script></block><block s="doIf"><block var="gotoLast"/><script><custom-block s="link points %l style %cmdRing by %n stitchToFirst %b backToFirst %b"><custom-block s="reverse %l"><block var="line2"/></custom-block><block s="reifyScript"><script></script><list></list></block><l>10</l><l><bool>false</bool></l><l><bool>false</bool></l></custom-block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="type"/><l>parallel</l></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l>1</l><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block s="reportIfElse"><block s="reportEquals"><block s="reportModulus"><block var="i"/><l>2</l></block><l>0</l></block><block var="line1"/><block var="line2"/></block></block><block var="style"/><block var="stepLen"/></custom-block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block s="reportIfElse"><block s="reportEquals"><block s="reportModulus"><block var="i"/><l>2</l></block><l>0</l></block><block var="line2"/><block var="line1"/></block></block><block var="style"/><block var="stepLen"/></custom-block></script></block><block s="doIf"><block var="gotoFirst"/><script><custom-block s="link points %l style %cmdRing by %n stitchToFirst %b backToFirst %b"><custom-block s="reverse %l"><block var="line1"/></custom-block><block s="reifyScript"><script></script><list></list></block><l>10</l><l><bool>false</bool></l><l><bool>false</bool></l></custom-block></script></block><block s="doIf"><block var="gotoLast"/><script><custom-block s="link points %l style %cmdRing by %n stitchToFirst %b backToFirst %b"><custom-block s="reverse %l"><block var="line2"/></custom-block><block s="reifyScript"><script></script><list></list></block><l>10</l><l><bool>false</bool></l><l><bool>false</bool></l></custom-block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="type"/><l>curve</l></block><script><block s="doDeclareVariables"><list><l>reversedLine2</l></list></block><block s="doSetVar"><l>reversedLine2</l><custom-block s="reverse %l"><block var="line2"/></custom-block></block><block s="doFor"><l>i</l><l>2</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><l>1</l></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block var="reversedLine2"/></block><block var="style"/><block var="stepLen"/></custom-block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l><option>last</option></l><block var="reversedLine2"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block><block s="doIf"><block s="reportEquals"><block var="type"/><l>interlaced</l></block><script><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block var="i"/><block s="reportIfElse"><block s="reportEquals"><block s="reportModulus"><block var="i"/><l>2</l></block><l>0</l></block><block var="line2"/><block var="line1"/></block></block><block var="style"/><block var="stepLen"/></custom-block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><l>2</l></block><l>0</l></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l><option>last</option></l><block var="line2"/></block><block var="style"/><block var="stepLen"/></custom-block></script><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l><option>last</option></l><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block><block s="doFor"><l>i</l><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><l>2</l><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><block s="reportDifference"><block var="i"/><l>1</l></block><block s="reportIfElse"><block s="reportEquals"><block s="reportModulus"><block var="i"/><l>2</l></block><l>0</l></block><block var="line2"/><block var="line1"/></block></block><block var="style"/><block var="stepLen"/></custom-block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="type"/><l>random</l></block><script><block s="doRepeat"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="line1"/></block><l>2</l></block></block><script><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l><option>any</option></l><block var="line2"/></block><block var="style"/><block var="stepLen"/></custom-block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l><option>any</option></l><block var="line1"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block><custom-block s="go to %l style %cmdRing by %n"><block s="reportListItem"><l>1</l><block var="line2"/></block><block var="style"/><block var="stepLen"/></custom-block></script></block></script></block-definition><block-definition s="fill the area enclosed by line %&apos;Track&apos; method %&apos;method&apos;" type="command" category="motion"><variables><list struct="atomic" id="2526">dir,lines</list></variables><header></header><code></code><translations>zh_CN:填充轨迹间区域 _ 方式 _&#xD;</translations><inputs><input type="%cs"></input><input type="%cmdRing"></input></inputs><script><custom-block s="begin tracking"></custom-block><custom-block s="reset tracking"></custom-block><block s="down"></block><block s="doRun"><block var="Track"/><list></list></block><block s="doSetVar"><l>lines</l><custom-block s="copy list %l"><custom-block s="my tracks"></custom-block></custom-block></block><custom-block s="close tracking"></custom-block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doRun"><block var="method"/><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><l>!</l></block></block></autolambda><list></list></block><block var="lines"/></block></list></block><block s="setHeading"><block var="dir"/></block></script></block-definition><block-definition s="fillBetweenLines firstTrack %&apos;firstTrack&apos; projecting part %&apos;projectingCode&apos; $nl secondTrack %&apos;secondTrack&apos; method %&apos;method&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:填充轨迹间区域 轨迹1 _ 突出部分 _ _ 轨迹2 _ 方式 _&#xD;</translations><inputs><input type="%cs"></input><input type="%cmdRing"></input><input type="%cs"></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>line1</l><l>line2</l><l>dir</l></list></block><custom-block s="begin tracking"></custom-block><custom-block s="reset tracking"></custom-block><block s="down"></block><block s="doRun"><block var="firstTrack"/><list></list></block><block s="doSetVar"><l>line1</l><custom-block s="copy list %l"><custom-block s="my tracks"></custom-block></custom-block></block><custom-block s="close tracking"></custom-block><block s="doIf"><block s="reportNot"><custom-block s="Is %cmdRing empty?"><block var="projectingCode"/></custom-block></block><script><block s="doRun"><block var="projectingCode"/><list></list></block></script></block><custom-block s="begin tracking"></custom-block><custom-block s="reset tracking"></custom-block><block s="doRun"><block var="secondTrack"/><list></list></block><block s="doSetVar"><l>line2</l><custom-block s="copy list %l"><custom-block s="my tracks"></custom-block></custom-block></block><custom-block s="close tracking"></custom-block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doRun"><block var="method"/><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><l>!</l></block></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block var="line1"/><block var="line2"/></list></block></block></list></block><block s="setHeading"><block var="dir"/></block></script></block-definition><block-definition s="lineLength %&apos;line&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:线段长度 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="line"/></block><l>2</l></block><script><block s="doReport"><l>-1</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="line"/></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportProduct"><block s="reportDifference"><block s="xPosition"></block><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportDifference"><block s="xPosition"></block><block s="reportListItem"><l>1</l><block var="line"/></block></block></block><block s="reportProduct"><block s="reportDifference"><block s="yPosition"></block><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="reportDifference"><block s="yPosition"></block><block s="reportListItem"><l>2</l><block var="line"/></block></block></block></block></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="line"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="line"/></block></block></block></block><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="line"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="line"/></block></block></block></block></block></block></block></script></block></script></block></script></block-definition><block-definition s="Is %&apos;ring&apos; empty?" type="predicate" category="operators"><header></header><code></code><translations>zh_CN:_ 为空?&#xD;</translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>context</l></list><l>return !(context instanceof Context) || context.expression instanceof Array;</l></block><list><block var="ring"/></list></block></block></script></block-definition><block-definition s="default stitch length" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (this.isRunning) {&#xD; return this.stitchoptions.length;&#xD;} else {&#xD; return 0;&#xD;}</l></block><list></list></block></block></script></block-definition></blocks>