#!/usr/bin/ruby -w require 'RMagick' i = Magick::ImageList.new i.new_image 500, 400 do self.background_color = "white" end primitives = Magick::Draw.new # Draw path primitives.fill_opacity 0 primitives.stroke 'red' primitives.stroke_width 3 primitives.path "M100,200 C100,100 250,100 250,200 S400,300 400,200" # Annotate # Show end points primitives.fill_opacity 0 primitives.stroke 'gray50' primitives.stroke_width 1 primitives.circle 100,200, 103, 203 primitives.circle 250,200, 253, 203 primitives.circle 400,200, 403, 203 # Show control points primitives.fill_opacity 1 primitives.circle 100,100, 103, 103 primitives.circle 250,100, 253, 103 primitives.circle 400,300, 403, 303 # Show connector lines primitives.line 100,200, 100,100 primitives.line 250,300, 250,100 primitives.line 400,200, 400,300 # Show auto control point primitives.fill_opacity 0 primitives.stroke 'blue' primitives.stroke_width 3 primitives.circle 250,300, 253,303 # Add labels primitives.stroke "#000000ff" # unset stroke color primitives.fill 'black' # Add end point labels primitives.text 110,205, "'100,200'" primitives.text 260,205, "'250,200'" primitives.text 410,205, "'400,200'" # Add control point labels primitives.text 110,105, "'100,100'" primitives.text 260,105, "'250,100'" primitives.text 410,305, "'400,300'" # Add auto control point label primitives.text 260,305, "'auto ctl point'" # Outline primitives.stroke('lavender') primitives.stroke_width(1) primitives.fill_opacity(0) primitives.rectangle(0,0, 499, 399) primitives.draw i #i.display i.write 'path.gif'