theta = 0

xml.svg :xmlns=>'http://www.w3.org/2000/svg', :viewBox=>'-500 -500 1000 1000' do
  xml.circle :r=>480, :stroke=>"#000", :fill=>"#000"
  for color, title, path, value, percent in chart
    p1 = [Math.sin(theta)*475, -Math.cos(theta)*475].map(&:round).join(',')
    theta += Math::PI*2 * percent/100
    p2 = [Math.sin(theta)*475, -Math.cos(theta)*475].map(&:round).join(',')
    xml.path :d=>"M0,0 L#{p1} A475,475 0 0 1 #{p2} Z",
      :fill=>color, :title=>title
  end
end
