David Vallner
1/15/2006 4:33:00 PM
On Sun, 15 Jan 2006 17:22:17 +0100, David Vallner <david@vallner.net>
wrote:
> On Sun, 15 Jan 2006 16:08:15 +0100, John Maclean <info@jayeola.org>
> wrote:
>
>> Chaps,
>>
>> Please find below a script taken from "Programming Ruby", ed. 2, P747.
>> Its intention is to "show off" the abilities of Tk and widgets. The
>> script works but generates a different image to that shown in the book
>> What results do you guys have? I would be interested to know.
>>
>> #!/usr/bin/ruby
>> require 'tk'
>> include Math
>>
>> TkRoot.new do |root|
>> title "Curves"
>> geometry "400x400"
>> TkCanvas.new(root) do |canvas|
>> width 400
>> height 400
>> pack('side' => 'top' , 'fill' => 'both' , 'expand' => 'yes' )
>> points = [ ]
>> 10.upto(30) do |scale|
>> (0.0).step(2*PI,0.1) do |i|
>> new_x = 5*scale*sin(i) + 200 + scale*sin(i*2)
>> new_y = 5*scale*cos(i) + 200 + scale*cos(i*6)
>> points << [ new_x, new_y ]
>> f = scale/5.0
>> r = (Math.sin(f)+1)*127.0
>> g = (Math.cos(2*f)+1)*127.0
>> b = (Math.sin(3*f)+1)*127.0
>>
>> col = sprintf("#%02x%02x%02x", r.to_i, g.to_i, b.to_i)
>> if points.size ==3
>> TkcLine.new(canvas,
>> points[0],[0], points[0],[1],
>> points[1],[0], points[1],[1],
>> points[2],[0], points[2],[1],
>> 'smooth' => 'on',
>> 'width' => 7,
>> 'fill' => col,
>> 'capstyle' => 'round')
>> points.shift
>> end
>> end
>> end
>> end
>> end
>> Tk.mainloop
>>
>> #errors generated
>> jayeola@tp20$ /usr/lib/ruby/1.8/tk.rb:2313: warning: redefine encoding=
>> /usr/lib/ruby/1.8/tk.rb:2316: warning: redefine encoding
>>
>
>
> Something must have goofed up between your and my version of the book,
> on whichever version of ruby and tcl/tk that comes with Cygwin updated a
> week ago, what you posted does indeed generate something strange,
> however no errors.
>
> Then I pasted the code from the PDF, version 2004-9-30, page 754 in the
> file, 726 in the book, I got the same image as in the book.
>
> I'll go diff the two codes now.
>
> David Vallner
>
Diff results after tweaking all the whitespace differences between the two
files (the first is the PDF version, the second the code you posted):
2a3
>
23,25c24,26
< points[0][0], points[0][1],
< points[1][0], points[1][1],
< points[2][0], points[2][1],
---
> points[0],[0], points[0],[1],
> points[1],[0], points[1],[1],
> points[2],[0], points[2],[1],
*coughs*
I rest my case.
David Vallner