# The Golden Fibonacci Ratio (#69)

**URL:** <https://www.ruby-forum.com/t/the-golden-fibonacci-ratio-69/77967>\
**Category:** Ruby\
**Created:** [March 7, 2006, 7:54pm UTC](https://www.ruby-forum.com/t/the-golden-fibonacci-ratio-69/77967 "2006-03-07T19:54:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![davidtl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/35a633/32.png) [@davidtl](https://www.ruby-forum.com/u/davidtl)\
**Post date:** [March 7, 2006, 7:54pm UTC](https://www.ruby-forum.com/t/the-golden-fibonacci-ratio-69/77967/1 "2006-03-07T19:54:29Z")

</div>

A PDF version “translate” from Christian N.'s Postscript Code.  
( [http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/182741](http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/182741) )

(puts “Usage #$0 filename”; exit(1)) unless ARGV[0]

require ‘pdf/writer’

pdf = PDF::Writer.new  
pdf.translate\_axis(100, 100)  
s = 400  
colors = [0.7, 0.5, 0.3].map { |e| Color::GrayScale.from\_fraction(e) }  
phi = (Math.sqrt(5) - 1 ) / 2

def box(i, pdf)  
pdf.move\_to(0,0).line\_to(i,0).line\_to(i,i).line\_to(0,i).close\_fill  
pdf.move\_to(0,0).line\_to(i,0).line\_to(i,i).line\_to(0,i).close\_stroke  
end

style = pdf.stroke\_style?

10.times do |i|  
pdf.fill\_color(colors[i % colors.size])  
pdf.stroke\_color(Color::RGB::Black)  
box(s, pdf)  
pdf.stroke\_color(Color::RGB.from\_fraction(0.8, 0.4, 0))  
pdf.ellipse2\_at(0, s, s, s, 0, -90).stroke  
pdf.translate\_axis(s, s)  
pdf.rotate\_axis(90)  
pdf.scale\_axis(phi, phi)  
style.width /= phi  
pdf.stroke\_style!(style)  
end

pdf.save\_as(ARGV[0])

**END**
