From: David Vallner Date: 2006-01-16T01:32:31+09:00 Subject: Re: "Programming Ruby", ed. 2, P747. Script generated different image to book's example On Sun, 15 Jan 2006 17:22:17 +0100, David Vallner wrote: > On Sun, 15 Jan 2006 16:08:15 +0100, John Maclean > 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