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