turtlestitch/libraries/geometryBlocks.xml

2 wiersze
72 KiB
XML

<blocks app="TurtleStitch 2.7, http://www.turtlestitch.org" version="2"><block-definition s="run with custom stitch %&apos;style&apos; %&apos;commands&apos;" type="command" category="embroidery"><header></header><code></code><translations>zh_CN:以针法 _ 运行 _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%cs"></input></inputs><script><block s="doRun"><block var="commands"/><list><block var="style"/></list></block></script></block-definition><block-definition s="diamond stitch length %&apos;length&apos; width %&apos;width&apos;" type="command" category="embroidery"><header></header><code></code><translations>zh_CN:钻石针 齿距 _ 宽度 _&#xD;</translations><inputs><input type="%n">10</input><input type="%n">12</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>l</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block var="width"/><block var="length"/></block></block></block><block s="doSetVar"><l>l</l><block s="reportQuotient"><block s="reportQuotient"><block var="length"/><l>2</l></block><block s="reportMonadic"><l><option>cos</option></l><block var="a"/></block></block></block><block s="turnLeft"><block var="a"/></block><block s="doRepeat"><l>2</l><script><block s="forward"><block var="l"/></block><block s="turn"><block s="reportProduct"><l>2</l><block var="a"/></block></block><block s="forward"><block var="l"/></block><block s="turn"><block s="reportDifference"><l>180</l><block s="reportProduct"><l>2</l><block var="a"/></block></block></block></script></block><block s="turn"><block var="a"/></block><block s="forward"><block var="length"/></block></script></block></script></block-definition><block-definition s="arc $turnLeft radius %&apos;radius&apos; degrees %&apos;degrees&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="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>n</l><l>angle</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportProduct"><block s="reportProduct"><block var="radius"/><block s="reportQuotient"><block var="degrees"/><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>angle</l><block s="reportQuotient"><block var="degrees"/><block var="n"/></block></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="doRepeat"><block var="n"/><script><block s="turnLeft"><block s="reportQuotient"><block var="angle"/><l>2</l></block></block><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><l>2</l><block s="reportProduct"><block var="radius"/><block s="reportMonadic"><l><option>sin</option></l><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></block></block></list></block><block s="turnLeft"><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></script></block></script></block></script></block-definition><block-definition s="arc $turnRight radius %&apos;radius&apos; degrees %&apos;degrees&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="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>n</l><l>angle</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportProduct"><block s="reportProduct"><block var="radius"/><block s="reportQuotient"><block var="degrees"/><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>angle</l><block s="reportQuotient"><block var="degrees"/><block var="n"/></block></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="doRepeat"><block var="n"/><script><block s="turn"><block s="reportQuotient"><block var="angle"/><l>2</l></block></block><block s="doRun"><block var="styleScript"/><list><block s="reportProduct"><l>2</l><block s="reportProduct"><block var="radius"/><block s="reportMonadic"><l><option>sin</option></l><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></block></block></list></block><block s="turn"><block s="reportQuotient"><block var="angle"/><l>2</l></block></block></script></block></script></block></script></block-definition><block-definition s="reflectionAngle angle %&apos;angle&apos; line %&apos;line&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:入射角 _ 和线段 _ 的反射角&#xD;</translations><inputs><input type="%n">60</input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>lineAngle1</l><l>normalAngle</l><l>lineAngle2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>lineAngle1</l><block s="reportDifference"><l>90</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>2</l><block var="line"/></block><block s="reportListItem"><l>1</l><block var="line"/></block></custom-block></block></block><block s="doSetVar"><l>lineAngle2</l><block s="reportDifference"><l>90</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></custom-block></block></block><block s="doReport"><block s="reportSum"><block var="lineAngle1"/><block s="reportDifference"><l>180</l><block s="reportDifference"><block var="angle"/><block var="lineAngle2"/></block></block></block></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="doWarp"><script><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></script></block-definition><block-definition s="hasCrossPoint line %&apos;line&apos;" type="predicate" category="sensing"><header></header><code></code><translations>zh_CN:将和线段 _ 产生交点?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>angle1</l><l>angle2</l><l>point</l><l>direction</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>point</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><block s="doSetVar"><l>angle1</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>1</l><block var="line"/></block></custom-block></block><block s="doSetVar"><l>angle2</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>2</l><block var="line"/></block></custom-block></block><block s="doSetVar"><l>direction</l><block s="reportModulus"><block s="reportSum"><block s="reportDifference"><l>90</l><block s="direction"></block></block><l>360</l></block><l>360</l></block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="angle1"/><block var="angle2"/></block><script><block s="doIf"><block s="reportLessThan"><block s="reportDifference"><block var="angle1"/><block var="angle2"/></block><l>180</l></block><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block var="direction"/><block var="angle1"/></block><block s="reportLessThan"><block var="direction"/><block var="angle2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportDifference"><block var="angle1"/><block var="angle2"/></block><l>180</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportLessThan"><block var="direction"/><block var="angle1"/></block><block s="reportGreaterThan"><block var="direction"/><block var="angle2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script><script><block s="doIf"><block s="reportLessThan"><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block><l>180</l></block><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block var="direction"/><block var="angle2"/></block><block s="reportLessThan"><block var="direction"/><block var="angle1"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block><l>180</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportLessThan"><block var="direction"/><block var="angle2"/></block><block s="reportGreaterThan"><block var="direction"/><block var="angle1"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="distanceToLine line %&apos;line&apos; crossPoint %&apos;crossPoint&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:到线段 _ 的距离,交点为 _&#xD;</translations><inputs><input type="%l"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>angle1</l><l>angle2</l><l>includedAngle1</l><l>edgeLength</l><l>includedAngle2</l><l>angle3</l><l>angle4</l><l>point</l><l>vDistance</l><l>includeAngle3</l><l>distance</l><l>hypotenuse</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="hasCrossPoint line %l"><block var="line"/></custom-block></block><script><block s="doSetVar"><l>crossPoint</l><block s="reportNewList"><list></list></block></block><block s="doReport"><l>9999</l></block></script></block><block s="doSetVar"><l>point</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><block s="doSetVar"><l>angle1</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></custom-block></block><block s="doSetVar"><l>angle2</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line"/></block><block var="point"/></custom-block></block><block s="doSetVar"><l>angle3</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>1</l><block var="line"/></block></custom-block></block><block s="doSetVar"><l>angle4</l><block s="reportModulus"><block s="reportSum"><block s="reportDifference"><l>90</l><block s="direction"></block></block><l>360</l></block><l>360</l></block></block><block s="doSetVar"><l>includedAngle1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block></block></block><block s="doSetVar"><l>includedAngle2</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="angle3"/><block var="angle4"/></block></block></block><block s="doIf"><block s="reportGreaterThan"><block var="includedAngle1"/><l>180</l></block><script><block s="doSetVar"><l>includedAngle1</l><block s="reportDifference"><l>360</l><block var="includedAngle1"/></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="includedAngle2"/><l>180</l></block><script><block s="doSetVar"><l>includedAngle2</l><block s="reportDifference"><l>360</l><block var="includedAngle2"/></block></block></script></block><block s="doSetVar"><l>includeAngle3</l><block s="reportDifference"><l>180</l><block s="reportSum"><block var="includedAngle1"/><block var="includedAngle2"/></block></block></block><block s="doSetVar"><l>edgeLength</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="point"/></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="point"/></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block></block></block><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="point"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="point"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block></block></block></block></block></block><block s="doSetVar"><l>vDistance</l><block s="reportProduct"><block var="edgeLength"/><block s="reportMonadic"><l><option>sin</option></l><block var="includedAngle1"/></block></block></block><block s="doSetVar"><l>distance</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block var="vDistance"/><block s="reportMonadic"><l><option>cos</option></l><block s="reportDifference"><l>90</l><block var="includeAngle3"/></block></block></block></block></block><block s="doSetVar"><l>hypotenuse</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportSum"><block s="reportProduct"><block var="distance"/><block var="distance"/></block><block s="reportProduct"><block var="edgeLength"/><block var="edgeLength"/></block></block><block s="reportProduct"><l>2</l><block s="reportProduct"><block s="reportProduct"><block var="edgeLength"/><block var="distance"/></block><block s="reportMonadic"><l><option>cos</option></l><block var="includedAngle2"/></block></block></block></block></block></block><block s="doSetVar"><l>crossPoint</l><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportProduct"><block var="hypotenuse"/><block s="reportMonadic"><l><option>cos</option></l><block var="angle1"/></block></block></block><block s="reportSum"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportProduct"><block var="hypotenuse"/><block s="reportMonadic"><l><option>sin</option></l><block var="angle1"/></block></block></block></list></block></block><block s="doReport"><block var="distance"/></block></script></block></script></block-definition><block-definition s="midpointOfLine %&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="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block s="reportSum"><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><l>2</l></block><block s="reportQuotient"><block s="reportSum"><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><l>2</l></block></list></block></block></script></block-definition><block-definition s="crossPoint on line %&apos;line&apos; distance %&apos;distance&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:和线段 _ 的交点,距离为 _&#xD;</translations><inputs><input type="%l"></input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>distance</l><custom-block s="distanceToLine line %l crossPoint %upvar"><block var="line"/><l>crossPoint</l></custom-block></block><block s="doReport"><block var="crossPoint"/></block></script></block-definition><block-definition s="randomPoint of line %&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="doDeclareVariables"><list><l>direction</l><l>range</l></list></block><block s="doSetVar"><l>direction</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line"/></block><block s="reportListItem"><l>2</l><block var="line"/></block></custom-block></block><block s="doSetVar"><l>range</l><block s="reportRandom"><l>0</l><block s="reportDifference"><custom-block s="lineLength %l"><block var="line"/></custom-block><l>0.001</l></block></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportProduct"><block var="range"/><block s="reportMonadic"><l><option>cos</option></l><block var="direction"/></block></block></block><block s="reportSum"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="reportProduct"><block var="range"/><block s="reportMonadic"><l><option>sin</option></l><block var="direction"/></block></block></block></list></block></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="crossPoint of line1 %&apos;line1&apos; and line2 %&apos;line2&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:线段1 _ 和线段2 _ 的交点&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>angle1</l><l>angle2</l><l>includedAngle1</l><l>edgeLength</l><l>includedAngle2</l><l>angle3</l><l>angle4</l><l>point</l><l>vDistance</l><l>includeAngle3</l><l>distance</l><l>hypotenuse</l><l>crossPoint</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="hasCrossPoint? line1 %l line2 %l"><block var="line1"/><block var="line2"/></custom-block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>point</l><block s="reportListItem"><l>1</l><block var="line1"/></block></block><block s="doSetVar"><l>angle1</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line2"/></block><block s="reportListItem"><l>2</l><block var="line2"/></block></custom-block></block><block s="doSetVar"><l>angle2</l><custom-block s="calcAngle start %l end %l"><block s="reportListItem"><l>1</l><block var="line2"/></block><block var="point"/></custom-block></block><block s="doSetVar"><l>angle3</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>1</l><block var="line2"/></block></custom-block></block><block s="doSetVar"><l>angle4</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>2</l><block var="line1"/></block></custom-block></block><block s="doSetVar"><l>includedAngle1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block></block></block><block s="doSetVar"><l>includedAngle2</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="angle3"/><block var="angle4"/></block></block></block><block s="doIf"><block s="reportGreaterThan"><block var="includedAngle1"/><l>180</l></block><script><block s="doSetVar"><l>includedAngle1</l><block s="reportDifference"><l>360</l><block var="includedAngle1"/></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="includedAngle2"/><l>180</l></block><script><block s="doSetVar"><l>includedAngle2</l><block s="reportDifference"><l>360</l><block var="includedAngle2"/></block></block></script></block><block s="doSetVar"><l>includeAngle3</l><block s="reportDifference"><l>180</l><block s="reportSum"><block var="includedAngle1"/><block var="includedAngle2"/></block></block></block><block s="doSetVar"><l>edgeLength</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="point"/></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="point"/></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block></block></block><block s="reportProduct"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="point"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="point"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block></block></block></block></block></block><block s="doSetVar"><l>vDistance</l><block s="reportProduct"><block var="edgeLength"/><block s="reportMonadic"><l><option>sin</option></l><block var="includedAngle1"/></block></block></block><block s="doSetVar"><l>distance</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block var="vDistance"/><block s="reportMonadic"><l><option>cos</option></l><block s="reportDifference"><l>90</l><block var="includeAngle3"/></block></block></block></block></block><block s="doSetVar"><l>hypotenuse</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportSum"><block s="reportProduct"><block var="distance"/><block var="distance"/></block><block s="reportProduct"><block var="edgeLength"/><block var="edgeLength"/></block></block><block s="reportProduct"><l>2</l><block s="reportProduct"><block s="reportProduct"><block var="edgeLength"/><block var="distance"/></block><block s="reportMonadic"><l><option>cos</option></l><block var="includedAngle2"/></block></block></block></block></block></block><block s="doSetVar"><l>crossPoint</l><block s="reportNewList"><list><block s="reportSum"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block><block s="reportProduct"><block var="hypotenuse"/><block s="reportMonadic"><l><option>cos</option></l><block var="angle1"/></block></block></block><block s="reportSum"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="line2"/></block></block><block s="reportProduct"><block var="hypotenuse"/><block s="reportMonadic"><l><option>sin</option></l><block var="angle1"/></block></block></block></list></block></block><block s="doReport"><block var="crossPoint"/></block></script></block></script></block-definition><block-definition s="hasCrossPoint? line1 %&apos;line1&apos; line2 %&apos;line2&apos;" type="predicate" category="sensing"><header></header><code></code><translations>zh_CN:线段1 _ 和线段2 _ 有交点?&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>angle1</l><l>angle2</l><l>point</l><l>direction</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>point</l><block s="reportListItem"><l>1</l><block var="line1"/></block></block><block s="doSetVar"><l>angle1</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>1</l><block var="line2"/></block></custom-block></block><block s="doSetVar"><l>angle2</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>2</l><block var="line2"/></block></custom-block></block><block s="doSetVar"><l>direction</l><custom-block s="calcAngle start %l end %l"><block var="point"/><block s="reportListItem"><l>2</l><block var="line1"/></block></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="angle1"/><block var="angle2"/></block><script><block s="doIf"><block s="reportLessThan"><block s="reportDifference"><block var="angle1"/><block var="angle2"/></block><l>180</l></block><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block var="direction"/><block var="angle1"/></block><block s="reportLessThan"><block var="direction"/><block var="angle2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportDifference"><block var="angle1"/><block var="angle2"/></block><l>180</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportLessThan"><block var="direction"/><block var="angle1"/></block><block s="reportGreaterThan"><block var="direction"/><block var="angle2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script><script><block s="doIf"><block s="reportLessThan"><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block><l>180</l></block><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block var="direction"/><block var="angle2"/></block><block s="reportLessThan"><block var="direction"/><block var="angle1"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportDifference"><block var="angle2"/><block var="angle1"/></block><l>180</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportLessThan"><block var="direction"/><block var="angle2"/></block><block s="reportGreaterThan"><block var="direction"/><block var="angle1"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="reflectionAngle angle %&apos;angle&apos; lineAngle %&apos;lineAngle&apos;" type="reporter" category="sensing"><header></header><code></code><translations>zh_CN:入射角 _ 和线段角度 _ 的反射角&#xD;</translations><inputs><input type="%n">60</input><input type="%n">90</input></inputs><script><block s="doReport"><block s="reportModulus"><block s="reportDifference"><block s="reportDifference"><l>180</l><block s="reportProduct"><l>2</l><custom-block s="translate angle %n"><block var="lineAngle"/></custom-block></block></block><block var="angle"/></block><l>360</l></block></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="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="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="doWarp"><script><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></script></block-definition><block-definition s="%&apos;#&apos; 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="%upvar"></input><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="doWarp"><script><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="doSetVar"><l>#</l><l>1</l></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><block s="doChangeVar"><l>#</l><l>1</l></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="doChangeVar"><l>#</l><l>1</l></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></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="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="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>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="%&apos;#&apos; 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="%upvar"></input><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="doSetVar"><l>#</l><l>1</l></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><block s="doChangeVar"><l>#</l><l>1</l></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><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block><block s="setHeading"><block var="dir"/></block></script></block-definition><block-definition s="circle centre %&apos;centre&apos; diam %&apos;diam&apos; style %&apos;styleScript&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:圆形 圆心 _ 直径 _ 方式 _&#xD;</translations><inputs><input type="%l"></input><input type="%n">20</input><input type="%cmdRing"></input></inputs><script><block s="doWarp"><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="up"></block><block s="doGotoObject"><block var="centre"/></block><block s="turn"><l>180</l></block><block s="forward"><block s="reportQuotient"><block var="diam"/><l>2</l></block></block><block s="turn"><l>180</l></block><block s="down"></block><block s="doIfElse"><block s="reportLessThan"><block var="diam"/><l>20</l></block><script><custom-block s="circle diam %n in %n turn %txt style %cmdRing"><block var="diam"/><l>12</l><l>right</l><block var="styleScript"/></custom-block></script><script><block s="doRepeat"><l>2</l><script><custom-block s="arc %n angle %n turn %txt style %cmdRing"><block var="diam"/><l>180</l><l>right</l><block var="styleScript"/></custom-block><block s="turn"><l>180</l></block></script></block></script></block><block s="up"></block><block s="forward"><block s="reportQuotient"><block var="diam"/><l>2</l></block></block><block s="down"></block></script></block></script></block-definition><block-definition s="circle diam %&apos;diam&apos; in %&apos;sections&apos; turn %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><variables><list struct="atomic" id="2484">part1,part2</list></variables><header></header><code></code><translations>zh_CN:圆形 直径 _ 分段数 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">100</input><input type="%n">20</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>angle</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>angle</l><l>360</l></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 var="diam"/><l>2</l></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"><l>180</l><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"><l>180</l><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-definition><block-definition s="%&apos;#&apos; circle diam %&apos;diam&apos; in %&apos;sections&apos; turn %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><variables><list struct="atomic" id="2611">part1,part2</list></variables><header></header><code></code><translations>zh_CN:_ 圆形 直径 _ 分段数 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">100</input><input type="%n">20</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>angle</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>angle</l><l>360</l></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 var="diam"/><l>2</l></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="doSetVar"><l>#</l><l>1</l></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>right</l></block><script><block s="turnLeft"><block s="reportQuotient"><block s="reportDifference"><l>180</l><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><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script><script><block s="turn"><block s="reportQuotient"><block s="reportDifference"><l>180</l><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><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block><block s="setHeading"><block var="dir"/></block></script></block></script></block-definition><block-definition s="fold line %&apos;distance&apos; width %&apos;range&apos; direction %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><variables><list struct="atomic" id="2747">line1,line2,dir</list></variables><header></header><code></code><translations>zh_CN:折线 _ 步 宽度 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">10</input><input type="%n">10</input><input type="%txt">left<options>left&#xD;right&#xD;middle</options></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>angle</l><l>chord</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>angle</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block var="range"/><block s="reportQuotient"><block var="distance"/><l>2</l></block></block></block></block><block s="doSetVar"><l>chord</l><block s="reportQuotient"><block var="range"/><block s="reportMonadic"><l><option>sin</option></l><block var="angle"/></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>middle</l></block><script><custom-block s="fold line %n width %n direction %txt style %cmdRing"><block s="reportQuotient"><block var="distance"/><l>2</l></block><block s="reportQuotient"><block var="range"/><l>2</l></block><l>left</l><block var="styleScript"/></custom-block><custom-block s="fold line %n width %n direction %txt style %cmdRing"><block s="reportQuotient"><block var="distance"/><l>2</l></block><block s="reportQuotient"><block var="range"/><l>2</l></block><l>right</l><block var="styleScript"/></custom-block></script><script><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><block s="turnLeft"><block var="angle"/></block><block s="doRun"><block var="styleScript"/><list><block var="chord"/></list></block><block s="turn"><block s="reportProduct"><l>2</l><block var="angle"/></block></block><block s="doRun"><block var="styleScript"/><list><block var="chord"/></list></block><block s="turnLeft"><block var="angle"/></block></script><script><block s="turn"><block var="angle"/></block><block s="doRun"><block var="styleScript"/><list><block var="chord"/></list></block><block s="turnLeft"><block s="reportProduct"><l>2</l><block var="angle"/></block></block><block s="doRun"><block var="styleScript"/><list><block var="chord"/></list></block><block s="turn"><block var="angle"/></block></script></block></script></block></script></block-definition><block-definition s="fold line %&apos;distance&apos; width %&apos;range&apos; direction %&apos;direction&apos; first style %&apos;styleScript1&apos; second style %&apos;styleScript2&apos;" type="command" category="motion"><variables><list struct="atomic" id="2870">line1,line2,dir</list></variables><header></header><code></code><translations>zh_CN:折线 _ 步 宽度 _ 方向 _ 方式1 _ 方式2 _&#xD;</translations><inputs><input type="%n">10</input><input type="%n">10</input><input type="%txt">left<options>left&#xD;right</options></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>angle</l><l>chord</l></list></block><block s="doWarp"><script><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript1"/></custom-block><script><block s="doSetVar"><l>styleScript1</l><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></block></script></block><block s="doIf"><custom-block s="Is %cmdRing empty?"><block var="styleScript2"/></custom-block><script><block s="doSetVar"><l>styleScript2</l><block var="styleScript1"/></block></script></block><block s="doSetVar"><l>angle</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block var="range"/><block s="reportQuotient"><block var="distance"/><l>2</l></block></block></block></block><block s="doSetVar"><l>chord</l><block s="reportQuotient"><block var="range"/><block s="reportMonadic"><l><option>sin</option></l><block var="angle"/></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><block s="turnLeft"><block var="angle"/></block><block s="doRun"><block var="styleScript1"/><list><block var="chord"/></list></block><block s="turn"><block s="reportProduct"><l>2</l><block var="angle"/></block></block><block s="doRun"><block var="styleScript2"/><list><block var="chord"/></list></block><block s="turnLeft"><block var="angle"/></block></script><script><block s="turn"><block var="angle"/></block><block s="doRun"><block var="styleScript1"/><list><block var="chord"/></list></block><block s="turnLeft"><block s="reportProduct"><l>2</l><block var="angle"/></block></block><block s="doRun"><block var="styleScript2"/><list><block var="chord"/></list></block><block s="turn"><block var="angle"/></block></script></block></script></block></script></block-definition><block-definition s="wall %&apos;distance&apos; direction %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:方波 _ 步 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">20</input><input type="%txt">left<options>left&#xD;right</options></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>sideLength</l></list></block><block s="doWarp"><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>sideLength</l><block s="reportQuotient"><block var="distance"/><l>2</l></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block></script><script><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="sideLength"/></list></block></script></block></script></block></script></block-definition><block-definition s="bar %&apos;distance&apos; width %&apos;range&apos; direction %&apos;direction&apos; style %&apos;styleScript&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:方波 _ 步 宽度 _ 方向 _ 方式 _&#xD;</translations><inputs><input type="%n">20</input><input type="%n">20</input><input type="%txt">left<options>left&#xD;right&#xD;middle</options></input><input type="%cmdRing"></input></inputs><script><block s="doWarp"><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="doIfElse"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="range"/></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="range"/></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>right</l></block><script><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="range"/></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block var="range"/></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block></script><script><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="range"/><l>2</l></block></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block><block s="turnLeft"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="range"/><l>2</l></block></list></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="range"/><l>2</l></block></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="distance"/><l>2</l></block></list></block><block s="turn"><l>90</l></block><block s="doRun"><block var="styleScript"/><list><block s="reportQuotient"><block var="range"/><l>2</l></block></list></block><block s="turnLeft"><l>90</l></block></script></block></script></block></script></block></script></block-definition><block-definition s="fractal size %&apos;size&apos; shape %&apos;shape&apos; levels %&apos;level&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:分形 _ 步 造型函数 _ 级数 _&#xD;</translations><inputs><input type="%n">100</input><input type="%cmdRing">100</input><input type="%n">9</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="level"/><l>1</l></block><script><block s="doRun"><block var="shape"/><list><block var="size"/><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></list></block></script><script><block s="doRun"><block var="shape"/><list><block var="size"/><block s="reifyScript"><script><custom-block s="fractal size %n shape %cmdRing levels %n"><l></l><block var="shape"/><block s="reportDifference"><block var="level"/><l>1</l></block></custom-block></script><list></list></block></list></block></script></block></script></block></script></block-definition><block-definition s="dashLine %&apos;length&apos; %&apos;solidlen&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:虚线 _ _&#xD;</translations><inputs><input type="%n">10</input><input type="%n">5</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportGreaterThan"><block var="length"/><block var="solidlen"/></block><script><block s="up"></block><block s="forward"><block s="reportDifference"><block var="length"/><block var="solidlen"/></block></block><block s="down"></block><block s="forward"><block var="solidlen"/></block></script><script><block s="up"></block><block s="forward"><block var="length"/></block></script></block></script></block></script></block-definition><block-definition s="edgefold %&apos;distance&apos; width %&apos;range&apos; angle %&apos;angle&apos; direction %&apos;direction&apos;" type="command" category="motion"><header></header><code></code><translations>zh_CN:折边线条 _ 步 宽度 _ 角度 _ 方向 _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">10</input><input type="%n">45</input><input type="%txt">left<options>left&#xD;right</options></input></inputs><script><block s="doDeclareVariables"><list><l>chord</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>chord</l><block s="reportQuotient"><block var="range"/><block s="reportMonadic"><l><option>sin</option></l><block var="angle"/></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><block s="turnLeft"><block var="angle"/></block><block s="forward"><block var="chord"/></block><block s="turn"><block var="angle"/></block><block s="forward"><block s="reportDifference"><block var="distance"/><block s="reportProduct"><l>2</l><block s="reportQuotient"><block var="range"/><block s="reportMonadic"><l><option>tan</option></l><block var="angle"/></block></block></block></block></block><block s="turn"><block var="angle"/></block><block s="forward"><block var="chord"/></block><block s="turnLeft"><block var="angle"/></block></script><script><block s="turn"><block var="angle"/></block><block s="forward"><block var="chord"/></block><block s="turnLeft"><block var="angle"/></block><block s="forward"><block s="reportDifference"><block var="distance"/><block s="reportProduct"><l>2</l><block s="reportQuotient"><block var="range"/><block s="reportMonadic"><l><option>tan</option></l><block var="angle"/></block></block></block></block></block><block s="turnLeft"><block var="angle"/></block><block s="forward"><block var="chord"/></block><block s="turn"><block var="angle"/></block></script></block><block s="up"></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block var="distance"/></block></block><block s="down"></block><custom-block s="move %n style %cmdRing by %n"><block var="distance"/><block s="reifyScript"><script><custom-block s="dashLine %n %n"><l></l><l>5</l></custom-block></script><list></list></block><l>10</l></custom-block><block s="down"></block></script></block></script></block-definition><block-definition s="square stitch length %&apos;length&apos;" type="command" category="embroidery"><header></header><code></code><translations>zh_CN:方形组合针 齿距 _&#xD;</translations><inputs><input type="%n">10</input></inputs><script><block s="doWarp"><script><block s="turnLeft"><l>45</l></block><block s="doRepeat"><l>4</l><script><block s="forward"><block s="reportQuotient"><block var="length"/><block s="reportMonadic"><l><option>sqrt</option></l><l>2</l></block></block></block><block s="turnLeft"><l>90</l></block></script></block><block s="turn"><l>90</l></block><block s="doRepeat"><l>4</l><script><block s="forward"><block s="reportQuotient"><block var="length"/><block s="reportMonadic"><l><option>sqrt</option></l><l>2</l></block></block></block><block s="turn"><l>90</l></block></script></block><block s="turnLeft"><l>45</l></block><block s="forward"><block var="length"/></block></script></block></script></block-definition><block-definition s="theme flat stitch length %&apos;length&apos; width %&apos;width&apos;" type="command" category="embroidery"><header></header><code></code><translations>zh_CN:主题平针 齿距 _ 宽度 _&#xD;</translations><inputs><input type="%n">10</input><input type="%n">12</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>l</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportQuotient"><block var="width"/><l>2</l></block><block var="length"/></block></block></block><block s="doSetVar"><l>l</l><block s="reportQuotient"><block var="length"/><block s="reportMonadic"><l><option>cos</option></l><block var="a"/></block></block></block><block s="turnLeft"><l>90</l></block><block s="forward"><block s="reportQuotient"><block var="width"/><l>2</l></block></block><block s="turn"><block s="reportSum"><l>90</l><block var="a"/></block></block><block s="forward"><block var="l"/></block><block s="turn"><block s="reportDifference"><l>180</l><block s="reportProduct"><l>2</l><block var="a"/></block></block></block><block s="forward"><block var="l"/></block><block s="turn"><block s="reportSum"><l>90</l><block var="a"/></block></block><block s="forward"><block s="reportQuotient"><block var="width"/><l>2</l></block></block><block s="turn"><l>90</l></block><block s="forward"><block var="length"/></block></script></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>