File: path.rb

package info (click to toggle)
librmagick-ruby 2.13.1-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,444 kB
  • ctags: 1,716
  • sloc: ansic: 16,755; ruby: 9,730; makefile: 16; sh: 12
file content (64 lines) | stat: -rw-r--r-- 1,293 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#! /usr/local/bin/ruby -w
require 'RMagick'

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

gc = Magick::Draw.new

# Draw path
gc.fill_opacity 0
gc.stroke 'red'
gc.stroke_width 3
gc.path "M20,120 C20,20 170,20 170,120 S320,220 320,120"

# Annotate
# Show end points
gc.fill_opacity 0
gc.stroke 'gray50'
gc.stroke_width 1
gc.circle  20,120,  23, 123
gc.circle 170,120, 173, 123
gc.circle 320,120, 323, 123

# Show control points
gc.fill_opacity 1
gc.circle  20, 20,  23,  23
gc.circle 170, 20, 173,  23
gc.circle 320,220, 323, 223

# Show connector lines
gc.line  20,120,  20, 20
gc.line 170, 20, 170,220
gc.line 320,220, 320,120

# Show auto control point
gc.fill_opacity 0
gc.stroke 'blue'
gc.stroke_width 3
gc.circle 170,220, 173,223

# Add labels
gc.font_weight Magick::NormalWeight
gc.font_style Magick::NormalStyle
gc.stroke "none"       # unset stroke color
gc.fill 'black'

# Add end point labels
gc.text  30,125, "'20,120'"
gc.text 180,125, "'170,120'"
gc.text 330,125, "'320,120'"

# Add control point labels
gc.text  30, 25, "'20,20'"
gc.text 180, 25, "'170,20'"
gc.text 330,225, "'320,220'"

# Add auto control point label
gc.text 180,225, "'auto ctl point'"

gc.draw imgl

imgl.border!(1,1, 'lightcyan2')
imgl.write 'path.gif'