On Mon, Oct 17, 2011 at 9:48 AM, Ricardo Moran <span dir="ltr">&lt;<a href="mailto:richi.moran@gmail.com">richi.moran@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div class="gmail_quote"><div>Hi Steve, thanks for your feedback :)</div></div></div></blockquote><div>I would think you have learned by now not to encourage me :) <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">
<div class="im">

Nice work.  I like the idea of adding a number line. Some thoughts comments and questions:<div><br></div></div><div>If I understand your implementation, you have a horizontal and vertical scale. Then you for each scale you select the &quot;current object&quot; you wish to operate on, to sets its vertical/horizontal position to the &quot;current object position in chart&quot; for each scale.</div>


</blockquote><div><br></div><div>Yes, that is correct.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">


<div><br></div><div>I think it would be better if you could somehow set the playfield&#39;s &quot;scale&quot; based upon the number line(s).   When you add a scale to a the playfield, the objects in that playfield have their X and Y values set to the scales you added.  Then if you &quot;move forward by | N&quot; it moves forward not by N pixels but by the scale settings.</div>


</blockquote><div><br></div></div><div>Well, that was my initial implementation, but as I recall Bert argued that it was too complicated to add another scale on top of existing scaling. And I have to agree with him, not only because this way is a lot less work :) but because it is also less error prone, my last implementation required patching a lot of important methods.</div>
</div></div></blockquote><div>Understood (well at least at the imagining how things are designed/implemented level).  The only concern I have is if you don&#39;t do it this way how can you (or can you) have an objects forward by, move based on scale settings instead of pixels?<br>
Hmmmm...  Perhaps (warning requirement overload potential)  You could have a move item in collection forward by tile (read further and hopefully what I am suggesting will become clear, not necessarily the right thing to do, but clear).  <br>
<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div class="gmail_quote">

<div>Also, I think changing the scale of the playfield based on the number line could cause confusion. If we follow that direction what scale would a playfield use if we add two number lines? The opposite is also true: having a different independent scale for the playfield and for the number lines can cause confusion as well (as Randy pointed out). So I think this is the simplest posible implementation: the only responsible of transforming from one scale to another is the number line.</div>
<div class="im">

<div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">


<div> </div></blockquote><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">


<div>Another possible approach is to have a collection for each &quot;scale&quot;. Then all objects in that collection will have their X, Y values set to and use those scale(s).</div><div><br></div><div>It would also be nice to have &quot;set of scales&quot; as one object (an X and Y scale) and one collection to make it simpler to add to both in one step.</div>


</blockquote><div><br></div></div><div>I&#39;m sorry, I couldn&#39;t follow you... </div></div></div></blockquote><div><br>Let&#39;s say you have a scale (or pair of scales).  My thinking is along these lines...<br>Each scale could have  reference to a collection of &quot;points/things to graph&quot;  <br>
Then when you either:<br><ul><li>change a scale, or <br></li><li>add a &quot;point&quot; to the referenced collection, <br></li></ul>you then: <br><ul><li>For each object in the collection:</li><li>change the point(s) X,Y to match the scale <br>
</li></ul>The use case I am thinking of is kids plot a bunch of points, then you change the scale, you would want the points to auto-magically adjust to the new scale setting.</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><ul><li>Perhaps have an option to show 0 (or not).  This would be useful for when you have two axis that intersect at 0, as it would look better if we didn&#39;t show the 0 labels.</li>


</ul></div></blockquote></div><div>Yes, that&#39;s something I thought too.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><ul>
<li>
When I change the <u>Line&#39;s min val</u> it changes the max value (and vica versa).  Hmmm, okay I think I&#39;m beginning to understand why you did this.  I was used to setting the min and max value for the axis and having the scale adjust as opposed to the scale setting the max value (well &quot;Invert always invert&quot; ;)  Have to think about this.</li>


</ul></div></blockquote></div><div>Mmm... I don&#39;t remember why I did it like that. I guess I thought the scale was more important and it should be fixed, but I can change that if you feel it should be the other way around.</div>
<div class="im">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><ul>
<li>The labels seem a little too close to the number lines.</li></ul></div></blockquote></div><div>True. I&#39;ll fix that.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><ul><li>It would be nice to have tiles to specify the font and size for the labels. (Or course it would be nice to tiles to specify font, size, centered/left flush|right flush|centered, for all text objects :)</li></ul>


</div></blockquote></div><div>Mmm... I could add those tiles to the text objects but I&#39;m not sure of adding them to the number line. Maybe I could add the &quot;collections&quot; category to the number lines and you could iterate over its submorphs changing whatever property you like. In fact, I think that could be added to all objects because all of them can behave like a collection. What do you think?</div>
<div class="im">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><ul>
<li>How can you set the arrow head for the negative direction?</li></ul></div></blockquote></div><div>Well, you can&#39;t :). But that&#39;s easy to fix. I don&#39;t remember who did but someone told me that the axis with the two arrow heads was confusing because it is supposed to point to the direction of positive infinity, but I always thought the arrows represent the axis going on forever, so I removed the negative arrow head at the time. I don&#39;t really know what is the correct meaning of the arrow heads but I could add a preference to turn the negative on/off.</div>
</div></div></blockquote><div>I like the preference, with the default set to negative off. <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="gmail_quote">

<div><br></div><div>Cheers,</div><div>Richo</div><div class="im"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Stephen</div><div>
<br></div><div class="gmail_quote">

<div>On Sun, Oct 16, 2011 at 8:16 PM, Ricardo Moran <span dir="ltr">&lt;<a href="mailto:richi.moran@gmail.com" target="_blank">richi.moran@gmail.com</a>&gt;</span> wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>Hi guys, I&#39;m trying again with the graphing tools. It&#39;s been a while since I worked on this (sorry about that) but I really want to see them integrated.<div>



<br><div>So now I&#39;m following Bert&#39;s suggestions and I&#39;m trying with a less general approach: I&#39;m not introducing a new scale on top of the existing one, instead I just added a &quot;current object&quot; slot on the number lines, and a &quot;current object position in chart&quot; slot that transforms from squeak&#39;s pixel to the number line scale and viceversa.</div>





<div><br></div><div>The implementation is much simpler than before but it&#39;s more uncomfortable IMHO. I think it would be best to have two &quot;transform&quot; functions accepting a number as argument and returning it transformed from one scale to the other. Unfortunately, it seems Etoys doesn&#39;t support this kind of functions nicely, all the examples I could find (such as #color:sees:) seem to be a little hacked and I wasn&#39;t sure if following that path was the right way to proceed.</div>





</div><div><br></div><div>I think the best would be for you to test it and tell me what you think. I&#39;m attaching a project with the new number lines. </div><div>Thanks!</div><div><br></div><div>Richo</div><div><br></div>





<div>P.S. I also renamed the project to Charts as Bert suggested</div>
<br></div></div><div>_______________________________________________<br>
squeakland mailing list<br>
<a href="mailto:squeakland@squeakland.org" target="_blank">squeakland@squeakland.org</a><br>
<a href="http://lists.squeakland.org/mailman/listinfo/squeakland" target="_blank">http://lists.squeakland.org/mailman/listinfo/squeakland</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div></div><br></div>
</blockquote></div><br>