<snapdata remixID="9715798"><project name="2020 - U1L3-AngleExperiments2 (starter)" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALRSURBVHhe7dm/ahRRGIfhs7HPHegFRCKikH5JpV6JQSGFWCiC1gpGMJUavJ9oY0oD6WLapM4f52wmoBeQ/Z3seR5YZga2mnk5e+bbycWgQMjSeIQIARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBECZAoARIlQKIESJQAiRIgUQIkSoBztru7W46OjsYrBHiNTk5Oyvn5+Xh1aeP5s/J7f3+8QoDXaHl5uUzX18uLly/LwcFB+by9XX78/Fn+HB6O32ByMRjPuQa/9vbK/YcPyuw2189kUj6+/1A2NzfHb/TNCnjN7q2uljevXl9eDPFVx8fHsyMCnIt3b9+Wuysr49XgskMGApyTnS9fx7NKgVcEOCdra2vl2dON2fnp2ensiADn6tPWVrlz+/ZsPMMlAc7R0tJS+f5tR4D/EOCcTafT8uTR4+HM9KsyB4yoM8Hz4e7fGq/7ZQWMqG/B//9F1ysBxgy3/uJsPO+XAFMm9dZbBQUYU3+Gh0/dC3ZMgEmzlxABEnP1l1y/gwgBptW9YMcvIwKMq4+groB9roICbEJdBfvcCwqwBR2/jAiwGXUV7G8vKMBWdDqYFmAzxsF0ZxEKsCV1L9jZy4gAm9LfYFqArelsMC3A5tRH0s9gWoBNqqtgH3tBAbaoo8G0AJtVV8HF3wsKsFWdDKYF2KxxML3ge0EBtqyDVVCATbt6PIs7khFg6xZ8MC3A5tVHtLiDaQHeCHUVXMy9oABvgoUdTJfyF2j0ehfBa9OdAAAAAElFTkSuQmCC</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="40.67366430758011" y="-91.3545457642598" heading="162" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="0,4,3,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="31" y="10"><block s="setHeading"><l>0</l><comment w="188.33333333333334" collapsed="true">You might (or might not) need this.</comment></block></script><script x="31" y="44"><block s="gotoXY"><l>0</l><l>0</l><comment w="188.33333333333334" collapsed="true">You might (or might not) need this.</comment></block></script><script x="31" y="77.99999999999994"><block s="clear"><comment w="80" collapsed="false">Script A.</comment></block><block s="doRepeat"><l>6</l><script><block s="down"><comment w="234.33333333333334" collapsed="true">It&apos;s best to put the pen down before drawing.</comment></block><block s="forward"><l>100</l></block><block s="doWait"><l>.5</l></block><block s="forward"><l>-100</l></block><block s="doWait"><l>.5</l></block><block s="turn"><block s="reportQuotient"><l>360</l><l>6</l></block></block></script></block></script><script x="30" y="278.3333333333335"><block s="clear"></block><block s="doRepeat"><l>60</l><script><block s="setColor"><color>0,4,3,1</color></block><block s="setSize"><l>1</l></block><block s="forward"><l>100</l></block><block s="doWait"><l>1</l></block><block s="setColor"><color>255,254,250,1</color><comment w="280.83333333333337" collapsed="false">Why is this change in pen color and size useful here?</comment></block><block s="setSize"><l>3</l></block><block s="forward"><l>-100</l></block><block s="turn"><block s="reportQuotient"><l>360</l><l>60</l></block></block></script><comment w="358.8333333333333" collapsed="false">Script B.&#xD;The second hand on a clock must make 60 small turns to make a full rotation.</comment></block></script><script x="30" y="537.1666666666668"><block s="gotoXY"><l>0</l><l>0</l></block><block s="clear"></block><block s="doRepeat"><l>5</l><script><block s="down"></block><block s="setSize"><l>1</l></block><block s="forward"><l>100</l></block><block s="doWait"><l>.5</l></block><block s="forward"><l>-100</l></block><block s="doWait"><l>.5</l></block><block s="turn"><l>70</l></block></script></block></script><script x="226" y="507.66666666666663"><block s="gotoXY"><l>0</l><l>0</l></block><block s="clear"></block><block s="doRepeat"><l>8</l><script><block s="down"></block><block s="setSize"><l>1</l></block><block s="forward"><l>100</l></block><block s="doWait"><l>.5</l></block><block s="forward"><l>-100</l></block><block s="doWait"><l>.5</l></block><block s="turn"><l>45</l></block></script></block></script><script x="420" y="486.66666666666663"><block s="gotoXY"><l>0</l><l>0</l></block><block s="clear"></block><block s="doRepeat"><l>3</l><script><block s="down"></block><block s="setSize"><l>1</l></block><block s="forward"><l>100</l></block><block s="doWait"><l>.5</l></block><block s="forward"><l>-100</l></block><block s="doWait"><l>.5</l></block><block s="turn"><l>120</l></block></script></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Table support&#xD;Table lines&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return SnapCloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([StageMorph.prototype.dimensions.x,&#xD;                                   StageMorph.prototype.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return ScriptsMorph.prototype.enableKeyboard;&#xD;    case &apos;Table support&apos;:&#xD;        return List.prototype.enableTables;&#xD;    case &apos;Table lines&apos;:&#xD;        return TableMorph.prototype.highContrast;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    default: return which;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Table support&#xD;Table lines&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;if (tf != !!tf) return;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        return;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        return;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        return;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        return;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        return;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        return;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        return;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        return;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) return;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        return;&#xD;    case &apos;Keyboard editing&apos;:&#xD;            ScriptsMorph.prototype.enableKeyboard = tf;&#xD;            if (ScriptsMorph.prototype.enableKeyboard) {&#xD;                ide.removeSetting(&apos;keyboard&apos;);&#xD;            } else {&#xD;                ide.saveSetting(&apos;keyboard&apos;, false);&#xD;            }&#xD;        return;&#xD;    case &apos;Table support&apos;:&#xD;            List.prototype.enableTables = tf;&#xD;            if (List.prototype.enableTables) {&#xD;                ide.removeSetting(&apos;tables&apos;);&#xD;            } else {&#xD;                ide.saveSetting(&apos;tables&apos;, false);&#xD;            }&#xD;        return;&#xD;    case &apos;Table lines&apos;:&#xD;                TableMorph.prototype.highContrast = tf;&#xD;                if (TableMorph.prototype.highContrast) {&#xD;                    ide.saveSetting(&apos;tableLines&apos;, true);&#xD;                } else {&#xD;                    ide.removeSetting(&apos;tableLines&apos;);&#xD;                }&#xD;        return;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        return;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        return;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        return;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        return;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        return;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        return;&#xD;}</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        return;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        return;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        return;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        return;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        return;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        return;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition></blocks><variables></variables></project><media name="2020 - U1L3-AngleExperiments2 (starter)" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>