Sha256: d40a07422333fc6af4f5c00c95d14c93f712f808a7589d0daa5fa115dc4b3764

Contents?: true

Size: 1.27 KB

Versions: 67

Compression:

Stored size: 1.27 KB

Contents

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

# Demonstrate the affine primitive. Transform the
# coordinate space to put the origin in the lower
# left corner.

imgl = Magick::ImageList.new
imgl.new_image 200, 200, Magick::HatchFill.new('white','lightcyan2')

gc = Magick::Draw.new

max_x = imgl.columns
max_y = imgl.rows

# Translate the y origin to the bottom of the window.
# Invert the y points by scaling by -1. Combine the
# two operations using the affine method. That is, the
# affine method is equivalent to:
#       gc.translate 0, max_y
#       gc.scale 1, -1
gc.affine(1, 0, 0, -1, 0, max_y)
gc.stroke('gray50')
gc.fill('gray50')
gc.stroke_width(1)

# Draw up-pointing arrow.
gc.polyline(10, 10, 10, max_y-10, 5, max_y-15, 15, max_y-15, 10, max_y-10)

# Draw right-pointing arrow
gc.polyline(10, 10, max_x-10, 10, max_x-15, 5, max_x-15, 15, max_x-10, 10)

gc.draw(imgl)

# Add labels. Use a different graphics context with a "normal"
# coordinate system so the text isn't inverted.
text_gc = Magick::Draw.new
text_gc.pointsize(14)
text_gc.font_weight(Magick::NormalWeight)
text_gc.stroke('transparent')
text_gc.text(15, max_y-15, "'0,0'")
text_gc.text(max_x-20, max_y-16, "'+x'")
text_gc.text(12, 15, "'+y'")
text_gc.draw(imgl)

imgl.border!(1, 1, "lightcyan2")

imgl.write("affine.gif")

Version data entries

67 entries across 67 versions & 2 rubygems

Version Path
rmagick-2.13.4 doc/ex/affine.rb
rmagick-2.13.3 doc/ex/affine.rb
rmagick-2.13.3.rc1 doc/ex/affine.rb
rmagick-2.13.2 doc/ex/affine.rb
rdp-rmagick-0.0.0 doc/ex/affine.rb
rmagick-2.13.1 doc/ex/affine.rb
rmagick-2.12.2 doc/ex/affine.rb
rmagick-2.12.1 doc/ex/affine.rb
rmagick-2.12.0 doc/ex/affine.rb
rmagick-2.11.1 doc/ex/affine.rb
rmagick-2.10.0 doc/ex/affine.rb
rmagick-2.11.0 doc/ex/affine.rb
rmagick-1.10.1 doc/ex/affine.rb
rmagick-1.10.0 doc/ex/affine.rb
rmagick-1.11.0 doc/ex/affine.rb
rmagick-1.13.0 doc/ex/affine.rb
rmagick-1.12.0 doc/ex/affine.rb
rmagick-1.11.1 doc/ex/affine.rb
rmagick-1.15.0 doc/ex/affine.rb
rmagick-1.14.1 doc/ex/affine.rb