<snapdata remixID="8384150"><project name="Supplementary 1: Microscope Calibration for Teachers" app="Snap! 5.0, http://snap.berkeley.edu" version="1"><notes>Use this to get the Snap stage coordinates of the pixels seen by your microscope. This is intended to be used alongside the Supplementary 1: Microscope project (https://snap.berkeley.edu/snapsource/snap.html#present:Username=milliones&amp;ProjectName=Supplementary%201%3A%20Microscope).</notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" volume="100" pan="0" lines="flat" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAPZklEQVR4Xu3VwW1jQQwFwVGuG56DcwbeHHxwP4Clu8D5RQL9eX4ECBAgQIDAnwt8/nyigQQIECBAgMATYEdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAAQIC7AYIECBAgEAgIMABupEECBAgQECA3QABAgQIEAgEBDhAN5IAAQIECAiwGyBAgAABAoGAAAfoRhIgQIAAAQF2AwQIECBAIBAQ4ADdSAIECBAgIMBugAABAgQIBAICHKAbSYAAAQIEBNgNECBAgACBQECAA3QjCRAgQICAALsBAgQIECAQCAhwgG4kAQIECBAQYDdAgAABAgQCAQEO0I0kQIAAgV8I/Lx/772v93nfv/j33F8EeG4lHkSAAAECFwQE+MKWfSMBAgQIzAkI8NxKPIgAAQIELggI8IUt+0YCBAgQmBMQ4LmVeBABAgQIXBAQ4Atb9o0ECBAgMCcgwHMr8SACBAgQuCAgwBe27BsJECBAYE5AgOdW4kEECBAgcEFAgC9s2TcSIECAwJyAAM+txIMIECBA4IKAAF/Ysm8kQIAAgTkBAZ5biQcRIECAwAUBAb6wZd9IgAABAnMCAjy3Eg8iQIAAgQsCAnxhy76RAAECBOYEBHhuJR5EgAABAhcEBPjCln0jAQIECMwJCPDcSjyIAAECBC4ICPCFLftGAgQIEJgTEOC5lXgQAQIECFwQEOALW/aNBAgQIDAnIMBzK/EgAgQIELggIMAXtuwbCRAgQGBOQIDnVuJBBAgQIHBBQIAvbNk3EiBAgMCcgADPrcSDCBAgQOCCgABf2LJvJECAAIE5AQGeW4kHESBAgMAFAQG+sGXfSIAAAQJzAgI8txIPIkCAAIELAgJ8Ycu+kQABAgTmBAR4biUeRIAAAQIXBAT4wpZ9IwECBAjMCQjw3Eo8iAABAgQuCAjwhS37RgIECBCYExDguZV4EAECBAhcEBDgC1v2jQQIECAwJyDAcyvxIAIECBC4ICDAF7bsGwkQIEBgTkCA51biQQQIECBwQUCAL2zZNxIgQIDAnIAAz63EgwgQIEDggoAAX9iybyRAgACBOQEBnluJBxEgQIDABQEBvrBl30iAAAECcwICPLcSDyJAgACBCwICfGHLvpEAAQIE5gQEeG4lHkSAAAECFwQE+MKWfSMBAgQIzAkI8NxKPIgAAQIELggI8IUt+0YCBAgQmBMQ4LmVeBABAgQIXBAQ4Atb9o0ECBAgMCcgwHMr8SACBAgQuCAgwBe27BsJECBAYE5AgOdW4kEECBAgcEFAgC9s2TcSIECAwJyAAM+txIMIECBA4IKAAF/Ysm8kQIAAgTkBAZ5biQcRIECAwAUBAb6wZd9IgAABAnMCAjy3Eg8iQIAAgQsCAnxhy76RAAECBOYEBHhuJR5EgAABAhcEBPjCln0jAQIECMwJCPDcSjyIAAECBC4ICPCFLftGAgQIEJgTEOC5lXgQAQIECFwQEOALW/aNBAgQIDAnIMBzK/EgAgQIELggIMAXtuwbCRAgQGBOQIDnVuJBBAgQIHBBQIAvbNk3EiBAgMCcgADPrcSDCBAgQOCCgABf2LJvJECAAIE5AQGeW4kHESBAgMAFAQG+sGXfSIAAAQJzAgI8txIPIkCAAIELAgJ8Ycu+kQABAgTmBAR4biUeRIAAAQIXBAT4wpZ9IwECBAjMCQjw3Eo8iAABAgQuCAjwhS37RgIECBCYExDguZV4EAECBAhcEBDgC1v2jQQIECAwJyDAcyvxIAIECBC4ICDAF7bsGwkQIEBgTkCA51biQQQIECBwQUCAL2zZNxIgQIDAnIAAz63EgwgQIEDggoAAX9iybyRAgACBOQEBnluJBxEgQIDABQEBvrBl30iAAAECcwICPLcSDyJAgACBCwICfGHLvpEAAQIE5gQEeG4lHkSAAAECFwQE+MKWfSMBAgQIzAkI8NxKPIgAAQIELggI8IUt+0YCBAgQmBP4D8BLBGnsGVBWAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables><variable name="calibrate_move_distance"><l>0.1</l></variable><variable name="microscope_x"><l>0</l></variable><variable name="microscope_y"><l>0</l></variable></variables><blocks></blocks><scripts><script x="20" y="20"><block s="doSetVar"><l>calibrate_move_distance</l><l>0.1</l><comment w="387" collapsed="false">TODO: Set to amount so using arrow keys moves the drawn dot one pixel at a time.</comment></block></script><script x="20" y="77"><block s="receiveKey"><l><option>up arrow</option></l></block><block s="doChangeVar"><l>draw_y</l><block var="calibrate_move_distance"/></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="173"><block s="receiveKey"><l><option>down arrow</option></l></block><block s="doChangeVar"><l>draw_y</l><block s="reportProduct"><l>-1</l><block var="calibrate_move_distance"/></block></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="273"><block s="receiveKey"><l><option>right arrow</option></l></block><block s="doChangeVar"><l>draw_x</l><block var="calibrate_move_distance"/></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="369"><block s="receiveKey"><l><option>left arrow</option></l></block><block s="doChangeVar"><l>draw_x</l><block s="reportProduct"><l>-1</l><block var="calibrate_move_distance"/></block></block><block s="doBroadcast"><l>draw</l></block></script></scripts><sprites><sprite name="Sprite" idx="1" x="188.5" y="-79.49999999999977" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,254.99999999999997,0,1" pen="tip" id="45"><costumes><list struct="atomic" id="46"></list></costumes><sounds><list struct="atomic" id="47"></list></sounds><blocks></blocks><variables><variable name="draw_amount"><l>0.25</l></variable></variables><scripts><comment x="20" y="20" w="439" collapsed="false">Setup:&#xD;&#xD;Place microscope on desk so can sit in chair and look with the microscope.&#xD;Put corner of laptop screen under microscope. Prop up other half of laptop (e.g. with textbooks).&#xD;Get the Snap stage area underneath the microscope by either:&#xD;    - Pressing the F11 key to make the web browser full screen (press it again to undo full screen).      - Moving the web browser window.Focus the microscope so can see subpixels clearly.</comment><script x="20" y="146"><block s="receiveKey"><l><option>1</option></l><comment w="365" collapsed="false">1) Press the 1 key to verify that the microscope is seeing some part of the microscope. When looking through the microscope, you should see all the visible subpixels go on, and then off multiple times.</comment></block><block s="doRepeat"><l>3</l><script><custom-block s="set to red %n green %n blue %n"><l>100</l><l>100</l><l>100</l></custom-block><block s="doWait"><l>1</l></block><custom-block s="set to red %n green %n blue %n"><l>0</l><l>0</l><l>0</l></custom-block><block s="doWait"><l>1</l></block></script></block></script><script x="20" y="312"><block s="receiveKey"><l><option>2</option></l><comment w="450" collapsed="false">2) Move the mouse cursor so it in view of the microscope.&#xD;    You will know the cursor is in view when the pixels seen with the microscope change.&#xD;    This may be a two person job: one to move the cursor, and another to look with the microscope.&#xD;    Finally press the 2 key to draw a green rectangle where the cursor is.</comment></block><block s="doSetVar"><l>draw_x</l><block s="reportRound"><block s="reportMouseX"></block></block></block><block s="doSetVar"><l>draw_y</l><block s="reportRound"><block s="reportMouseY"></block></block></block><block s="doSetVar"><l>draw_amount</l><l>10</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="460"><block s="receiveKey"><l><option>3</option></l><comment w="445" collapsed="false">3) Move the cursor out of view from the microscope and verify all green subpixels are still lit.&#xD;    Then press the 3 key to draw a smaller rectangle.&#xD;    Use the arrow keys to move the smaller green rectangle into view of the microscope.&#xD;    Note that the microscope may be flipping the seen pixels, so the arrow keys may be inverted.</comment></block><block s="doSetVar"><l>draw_amount</l><l>8</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="556"><block s="receiveKey"><l><option>4</option></l><comment w="473" collapsed="false">4-9) Press the corresponding number key, and use the arrow keys to move the smaller and smaller green rectangle into view. Once satisfied, write down the final draw_x and draw_y values (visible in stage).</comment></block><block s="doSetVar"><l>draw_amount</l><l>6</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="652"><block s="receiveKey"><l><option>5</option></l></block><block s="doSetVar"><l>draw_amount</l><l>3.5</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="748"><block s="receiveKey"><l><option>6</option></l></block><block s="doSetVar"><l>draw_amount</l><l>2</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="844"><block s="receiveKey"><l><option>7</option></l></block><block s="doSetVar"><l>draw_amount</l><l>1</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="940"><block s="receiveKey"><l><option>8</option></l></block><block s="doSetVar"><l>draw_amount</l><l>0.5</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="1036"><block s="receiveKey"><l><option>9</option></l></block><block s="doSetVar"><l>draw_amount</l><l>0.25</l></block><block s="doBroadcast"><l>draw</l></block></script><script x="20" y="1132"><block s="receiveMessage"><l>draw</l></block><block s="gotoXY"><block var="draw_x"/><block var="draw_y"/></block><block s="clear"></block><custom-block s="set dot shape to %txt"><l>line</l></custom-block><custom-block s="set pen color to red %n green %n blue %n"><l>0</l><l>100</l><l>0</l></custom-block><block s="down"></block><block s="setSize"><block s="reportProduct"><l>4</l><block var="draw_amount"/></block></block><block s="forward"><block var="draw_amount"/></block><block s="forward"><block s="reportProduct"><l>-1</l><block var="draw_amount"/></block></block></script></scripts></sprite><watcher var="green" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="blue" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="pen_red" style="normal" x="10" y="73.00000599999998" color="243,118,29" hidden="true"/><watcher var="pen_green" style="normal" x="10" y="94.00000799999998" color="243,118,29" hidden="true"/><watcher var="pen_blue" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher scope="Stage" var="calibrate_move_distance" style="normal" x="10" y="178.00001599999985" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="draw_amount" style="normal" x="10" y="241.00002199999994" color="243,118,29" hidden="true"/><watcher var="red" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="draw_x" style="normal" x="10" y="13.000001999999995" color="243,118,29"/><watcher var="draw_y" style="normal" x="12" y="38.00001999999995" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="set to red %&apos;r&apos; green %&apos;g&apos; blue %&apos;b&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doSetVar"><l>red</l><block var="r"/></block><block s="doIf"><block s="reportLessThan"><block var="red"/><l>0</l></block><script><block s="doSetVar"><l>red</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="red"/><l>100</l></block><script><block s="doSetVar"><l>red</l><l>100</l></block></script></block><block s="doSetVar"><l>green</l><block var="g"/></block><block s="doIf"><block s="reportLessThan"><block var="green"/><l>0</l></block><script><block s="doSetVar"><l>green</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="green"/><l>100</l></block><script><block s="doSetVar"><l>green</l><l>100</l></block></script></block><block s="doSetVar"><l>blue</l><block var="b"/></block><block s="doIf"><block s="reportLessThan"><block var="blue"/><l>0</l></block><script><block s="doSetVar"><l>blue</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="blue"/><l>100</l></block><script><block s="doSetVar"><l>blue</l><l>100</l></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l></list><l>var stage = this.parentThatIsA(StageMorph),    img = stage.image,    ctx = img.getContext(&apos;2d&apos;);var setToColor = new Color(255.0 / 100 * r, 255.0 / 100 * g, 255.0 / 100 * b);ctx.fillStyle = setToColor.toString();ctx.fillRect(0, 0, img.width, img.height);stage.changed();</l></block><list><block var="red"/><block var="green"/><block var="blue"/></list></block></script></block-definition><block-definition s="transition to red %&apos;r&apos; green %&apos;g&apos; blue %&apos;b&apos; in %&apos;s&apos; steps" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">100</input><input type="%n">100</input><input type="%n">70</input></inputs><script><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="s"/><l>0</l></block><block s="reportLessThan"><block var="s"/><l>0</l></block></block><script><block s="doChangeVar"><l>red</l><block s="reportQuotient"><block s="reportDifference"><block var="r"/><block var="red"/></block><block var="s"/></block></block><block s="doChangeVar"><l>green</l><block s="reportQuotient"><block s="reportDifference"><block var="g"/><block var="green"/></block><block var="s"/></block></block><block s="doChangeVar"><l>blue</l><block s="reportQuotient"><block s="reportDifference"><block var="b"/><block var="blue"/></block><block var="s"/></block></block><block s="doChangeVar"><l>s</l><l>-1</l></block><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="green"/><block var="blue"/></custom-block></script></block><custom-block s="set to red %n green %n blue %n"><block var="r"/><block var="g"/><block var="b"/></custom-block></script></block-definition><block-definition s="change red by %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doChangeVar"><l>red</l><block var="c"/></block><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="green"/><block var="blue"/></custom-block></script></block-definition><block-definition s="set red to %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">100</input></inputs><script><custom-block s="set to red %n green %n blue %n"><block var="c"/><block var="green"/><block var="blue"/></custom-block></script></block-definition><block-definition s="change green by %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doChangeVar"><l>green</l><block var="c"/></block><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="green"/><block var="blue"/></custom-block></script></block-definition><block-definition s="set green to %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">100</input></inputs><script><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="c"/><block var="blue"/></custom-block></script></block-definition><block-definition s="change blue by %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doChangeVar"><l>blue</l><block var="c"/></block><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="green"/><block var="blue"/></custom-block></script></block-definition><block-definition s="set blue to %&apos;c&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">100</input></inputs><script><custom-block s="set to red %n green %n blue %n"><block var="red"/><block var="green"/><block var="c"/></custom-block></script></block-definition><block-definition s="set pen color to red %&apos;r&apos; green %&apos;g&apos; blue %&apos;b&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input><input type="%n">50</input><input type="%n">50</input></inputs><script><block s="doSetVar"><l>pen_red</l><block var="r"/></block><block s="doIf"><block s="reportLessThan"><block var="pen_red"/><l>0</l></block><script><block s="doSetVar"><l>pen_red</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="pen_red"/><l>100</l></block><script><block s="doSetVar"><l>pen_red</l><l>100</l></block></script></block><block s="doSetVar"><l>pen_green</l><block var="g"/></block><block s="doIf"><block s="reportLessThan"><block var="pen_green"/><l>0</l></block><script><block s="doSetVar"><l>pen_green</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="pen_green"/><l>100</l></block><script><block s="doSetVar"><l>pen_green</l><l>100</l></block></script></block><block s="doSetVar"><l>pen_blue</l><block var="b"/></block><block s="doIf"><block s="reportLessThan"><block var="pen_blue"/><l>0</l></block><script><block s="doSetVar"><l>pen_blue</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="pen_blue"/><l>100</l></block><script><block s="doSetVar"><l>pen_blue</l><l>100</l></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l></list><l>this.setColor(new Color(255.0 / 100 * r, 255.0 / 100 * g, 255.0 / 100 * b));</l></block><list><block var="pen_red"/><block var="pen_green"/><block var="pen_blue"/></list></block></script></block-definition><block-definition s="draw dot" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="down"></block><block s="setSize"><l>5</l></block><block s="forward"><l>1</l></block><block s="forward"><l>-1</l></block></script></block-definition><block-definition s="set dot shape to %&apos;style&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">circle<options>circle&#xD;line</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>choice</l></list><l>SpriteMorph.prototype.useFlatLineEnds = (choice === &apos;line&apos;);</l></block><list><block var="style"/></list></block></script></block-definition></blocks><variables><variable name="red"><l>0</l></variable><variable name="green"><l>0</l></variable><variable name="blue"><l>0</l></variable><variable name="pen_red"><l>0</l></variable><variable name="pen_green"><l>100</l></variable><variable name="pen_blue"><l>0</l></variable><variable name="draw_x"><l>188.49999999999974</l></variable><variable name="draw_y"><l>-79.49999999999974</l></variable></variables></project><media name="Supplementary 1: Microscope Calibration for Teachers" app="Snap! 5.0, http://snap.berkeley.edu" version="1"></media></snapdata>