Here's mine before I delved into trying to add the aspect ratio feature.
class Circle
def initialize(radius)
@radius = radius.to_i
end
def draw
(0..@radius*2).each do |x|
(0..@radius*2).each do |y|
print distance_from_center(x,y).round == @radius ? '#' : '.'
end
puts
end
end
def distance_from_center(x,y)
a = calc_side(x)
b = calc_side(y)
return Math.sqrt(a**2 + b**2)
end
def calc_side(z)
z < @radius ? (@radius - z) : (z - @radius)
end
end
Circle.new(ARGV.shift).draw
--
http://www.5valleys.com/
http://www.workingwithrails.com/person/8078