File: quad01.rb

package info (click to toggle)
ruby-rmagick 6.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,232 kB
  • sloc: cpp: 19,563; ruby: 17,147; sh: 88; javascript: 36; makefile: 13
file content (34 lines) | stat: -rw-r--r-- 1,060 bytes parent folder | download | duplicates (2)
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
require 'rvg/rvg'

Magick::RVG.dpi = 90

rvg = Magick::RVG.new(12.cm, 6.cm).viewbox(0, 0, 1200, 600) do |canvas|
  canvas.title = 'Example quad01 - quadratic Bezier commands in path data'
  canvas.desc = <<-END_DESC
        Picture showing a "Q" a "T" command, along with annotations showing the
        control points and end points
  END_DESC
  canvas.background_fill = 'white'
  canvas.rect(1195, 592, 1, 1).styles(fill: 'none', stroke: 'blue', stroke_width: 1)

  canvas.path('M200,300 Q400,50 600,300 T1000,300')
        .styles(fill: 'none', stroke: 'red', stroke_width: 5)

  # End points
  canvas.g.styles(fill: 'black') do |grp|
    grp.circle(10, 200, 300)
    grp.circle(10, 600, 300)
    grp.circle(10, 1000, 300)
  end

  # Control points and lines from end points to control points
  canvas.g.styles(fill: '#888') do |grp|
    grp.circle(10, 400, 50)
    grp.circle(10, 800, 550)
  end

  canvas.path('M200,300 L400,50 L600,300 L800,550 L1000,300')
        .styles(fill: 'none', stroke: '#888', stroke_width: 2)
end

rvg.draw.write('quad01.gif')