I fixed a issue with the coarse grid not behaving with offset. I had to find the proper starting point in the count variable and things worked fine. <div><br></div><div>Karl</div><div><br><div><br></div><div><div>twoTierGridFormOrigin: origin grid: smallGrid  background: backColor line: lineColor darkerGridEvery: darkerGridEvery darkerGridColor: darkerGridColor</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>&quot;Answer an infinite form that repeats a pattern involving grid lines with darker ones at regular intervals, such as &#39;engineering paper&#39;.&quot;</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| smallGridAsPoint gridForm gridOrigin fullGrid aColor darkGridOrigin countX countY |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>smallGridAsPoint := smallGrid rounded asPoint.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>fullGrid := smallGridAsPoint * darkerGridEvery.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>gridForm := Form extent: fullGrid depth: Display depth.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>gridOrigin := origin \\ smallGridAsPoint.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>darkGridOrigin := origin \\ fullGrid.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>backColor ifNotNil: [gridForm fillWithColor: backColor].</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>darkGridOrigin ifNotNil:[countX:=  darkGridOrigin x. countY:=  darkGridOrigin y] </div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>ifNil:[countX:= countY := -1].</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>gridOrigin x to: gridForm width by: smallGridAsPoint x do:</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>[:x |</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>aColor := (countX \\ darkerGridEvery) = 0 ifTrue: [darkerGridColor] ifFalse: [lineColor].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>gridForm fill: (x@0 extent: 1@gridForm height) fillColor: aColor. </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>countX:= countX+ 1.].</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>gridOrigin y to: gridForm height by: smallGridAsPoint y do:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[:y |</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>aColor := (countY\\ darkerGridEvery) = 0 ifTrue: [darkerGridColor] ifFalse: [lineColor].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>gridForm fill: (0@y extent: gridForm width@1) fillColor: aColor. </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>countY:= countY+ 1.].</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>^ InfiniteForm with: gridForm</div><div><br></div><div>&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| aPlayfield |</div><div>
<span class="Apple-tab-span" style="white-space:pre">        </span>aPlayfield := PasteUpMorph authoringPrototype extent: 640 @ 480.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>aPlayfield color: (GraphPaperParameters twoTierGridFormOrigin: (0@0) grid: 16 background: Color green muchLighter line: Color blue muchLighter darkerGridEvery: 10 darkerGridColor: Color blue muchDarker).</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>aPlayfield openInHand</div><div>&quot;</div><div><br></div><br><div class="gmail_quote">On Sun, Mar 4, 2012 at 10:20 PM, Scott Wallace <span dir="ltr">&lt;<a href="mailto:scott.wallace@squeakland.org">scott.wallace@squeakland.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mar 3, 2012, at 5:54 AM, karl ramberg wrote:<br>
<br>
&gt; ...Yes, all the stuff will be included. I fixed a couple of issues with graph paper and will add the rest over the weekend.<br>
<br>
Thank you, Karl!<br>
<br>
Attached now is a fileout that responds to all the issues and recommendations relating to the graphing tools that have appeared in the past few days, and cleans up a few loose ends.  Its preamble:<br>
<br>
Change Set:             graphingFixes-sw<br>
Date:                   4 March 2012<br>
Author:                 Scott Wallace<br>
<br>
Addresses various bug-reports and recommendations relating to recent number-line and graph-paper updates:<br>
- Enforce reasonable ranges for the sliders governing the grid parameters, taking the grid-size, coarse-grid-size , and playfield dimensions into account.<br>
- Provide a button to request &#39;graph paper&#39; from the &#39;generic property sheet&#39; when appropriate.<br>
- Retain position of number line when its pixelsPerUnit changes.<br>
- Disable the &#39;offset&#39; when coarse-grid in effect.<br>
- Protect sliders against zero-divide that can happen if minVal = maxVal.<br>
- Protect InfiniteForms against incidental calls to #darker and #twiceDarker that can be sent to any object&#39;s fillStyle by some of the custom border code.<br>
- Removes about a dozen superfluous methods that had mistakenly lingered in the earlier updates, and removes three inst vars of NumberLineMorph that were remnants from earlier code….<br>
<br>
-----------<br>
<br>
Sorry this was just a little too late to make it into update 2398, but hopefully these cleanups can get pushed out soon; it wouldn&#39;t be good for users to start using the graphing tools before these fixes are in.<br>
<br>
Thanks again!<br>
<span class="HOEnZb"><font color="#888888"><br>
  -- Scott<br>
<br>
</font></span></blockquote></div><br></div></div>