Sha256: a168ecf336037d2bb8bd2a75f708cf486758fa9b36ead2c487d2e2f41bdcc1c5

Contents?: true

Size: 1.91 KB

Versions: 13

Compression:

Stored size: 1.91 KB

Contents

#!/usr/bin/env ruby -w

require 'rmagick'

# Demonstrate the use of RMagick's Draw class
# and show the default coordinate system.

# Create a canvas to draw on. Use the HatchFill class to
# cross-hatch the background with light gray lines every 10 pixels.
canvas = Magick::ImageList.new
canvas.new_image(250, 250, Magick::HatchFill.new('white', 'gray90'))

# Draw a border around the edges of the canvas.
border = Magick::Draw.new
border.stroke('thistle')
border.fill_opacity(0)
border.rectangle(0,0, canvas.columns-1, canvas.rows-1)
border.draw(canvas)

# Draw gold axes with arrow-heads.
axes = Magick::Draw.new
axes.fill_opacity(0)
axes.stroke('gold3')
axes.stroke_width(4)
axes.stroke_linecap('round')
axes.stroke_linejoin('round')
axes.polyline(18,canvas.rows-10, 10,canvas.rows-3, 3,canvas.rows-10,
              10,canvas.rows-10, 10,10, canvas.columns-10,10,
              canvas.columns-10,3, canvas.columns-3,10, canvas.columns-10, 18)
axes.draw(canvas)

# Draw a red circle to show the direction of rotation.
# Make it slightly transparent so the hatching will show through.
circle = Magick::Draw.new
circle.stroke('tomato')
circle.fill_opacity(0)
circle.stroke_opacity(0.75)
circle.stroke_width(6)
circle.stroke_linecap('round')
circle.stroke_linejoin('round')
circle.ellipse(canvas.rows/2,canvas.columns/2, 80, 80, 0, 315)
circle.polyline(180,70, 173,78, 190,78, 191,62)
circle.draw(canvas)

# Label the axes and the circle.
labels = Magick::Draw.new
labels.font_weight(Magick::NormalWeight)
labels.fill('black')
labels.stroke('transparent')
labels.font_style(Magick::ItalicStyle)
labels.pointsize(14)
labels.gravity(Magick::NorthWestGravity)
labels.text(20,30, "'0,0'")
labels.gravity(Magick::NorthEastGravity)
labels.text(20,30, "'+x'")
labels.gravity(Magick::SouthWestGravity)
labels.text(20,20, "'+y'")
labels.gravity(Magick::CenterGravity)
labels.text(0,0, 'Rotation')
labels.draw(canvas)

#canvas.display
canvas.write('axes.gif')
exit

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
rmagick-windows-2.16.5 doc/ex/axes.rb
rmagick-windows-2.16.4 doc/ex/axes.rb
rmagick-windows-2.16.3 doc/ex/axes.rb
rmagick-windows-2.16.2 doc/ex/axes.rb
rmagick-windows-2.16.1 doc/ex/axes.rb
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/rmagick-2.16.0/doc/ex/axes.rb
rmagick-2.16.0 doc/ex/axes.rb
rmagick-2.15.4 doc/ex/axes.rb
rmagick-2.15.3 doc/ex/axes.rb
rmagick-2.15.2 doc/ex/axes.rb
rmagick-2.15.1 doc/ex/axes.rb
rmagick-2.15.0 doc/ex/axes.rb
rmagick-2.14.0 doc/ex/axes.rb