#!/usr/bin/ruby -w
require 'RMagick'

i = Magick::ImageList.new
i.new_image(550, 300, Magick::HatchFill.new('seashell'))
gc = Magick::Draw.new

# Draw Bezier curve
gc.stroke('red')
gc.stroke_width(3)
gc.fill_opacity(0)
gc.bezier(100,200, 25,100, 475, 100, 400,200)

# Draw circles around endpoints
gc.fill_opacity(0)
gc.stroke('gray50').stroke_width(1)
gc.circle(100,200, 103, 203)
gc.circle(400,200, 403, 203)
gc.line(100,200, 25,100)
gc.line(400,200, 475,100)

# Draw filled circles around control points
gc.fill_opacity(1)
gc.fill('gray50')
gc.circle(25,100, 28,103)
gc.circle(475,100, 478,103)

# Annotate
gc.fill('black')
gc.stroke('transparent')
gc.text(107,200, "'100,200'")
gc.text(30,100,  "'25,100'")
gc.text(409,200, "'400,200'")
gc.text(480,100, "'475,100'")

gc.draw(i)
i.write('cbezier3.gif')
exit(0)