Sha256: 31c4d67fa1a55928a2e8f0946c7eb7b678e1cbff634f0f3e613d3e8d997ed98a

Contents?: true

Size: 1.61 KB

Versions: 52

Compression:

Stored size: 1.61 KB

Contents

# # Arcs and Solid Arcs
#
# This example shows how to use the graphic objects `:arc` and `:solid_arc` to
# draw simple pie charts.
#
# Usage:
# : `ruby arcs.rb`
#

require 'hexapdf'

doc = HexaPDF::Document.new
page = doc.pages.add
canvas = page.canvas

radius = 75

# Left pie chart
center = [page.box.width * 0.25, page.box.height * 0.85]
pie = canvas.graphic_object(:solid_arc, cx: center[0], cy: center[1],
                            outer_a: radius, outer_b: radius)
canvas.fill_color('ddddff')
canvas.draw(pie, start_angle: 30, end_angle: 110).fill
canvas.fill_color('ffdddd')
canvas.draw(pie, start_angle: 110, end_angle: 130).fill
canvas.fill_color('ddffdd')
canvas.draw(pie, start_angle: 130, end_angle: 30).fill

arc = canvas.graphic_object(:arc, cx: center[0], cy: center[1],
                            a: radius, b: radius)
canvas.stroke_color('0000ff')
canvas.draw(arc, start_angle: 30, end_angle: 110).stroke
canvas.stroke_color('ff0000')
canvas.draw(arc, start_angle: 110, end_angle: 130).stroke
canvas.stroke_color('00ff00')
canvas.draw(arc, start_angle: 130, end_angle: 30).stroke

# Right pie chart
center = [page.box.width * 0.75, page.box.height * 0.85]
canvas.stroke_color('777777')
pie = canvas.graphic_object(:solid_arc, cx: center[0], cy: center[1],
                            outer_a: radius, outer_b: radius)
canvas.fill_color('ddddff')
canvas.draw(pie, start_angle: 30, end_angle: 110).fill_stroke
canvas.fill_color('ffdddd')
canvas.draw(pie, start_angle: 110, end_angle: 130).fill_stroke
canvas.fill_color('ddffdd')
canvas.draw(pie, start_angle: 130, end_angle: 30).fill_stroke

doc.write('arcs.pdf', optimize: true)

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
hexapdf-0.32.2 examples/003-arcs.rb
hexapdf-0.32.1 examples/003-arcs.rb
hexapdf-0.32.0 examples/003-arcs.rb
hexapdf-0.31.0 examples/003-arcs.rb
hexapdf-0.30.0 examples/003-arcs.rb
hexapdf-0.29.0 examples/003-arcs.rb
hexapdf-0.28.0 examples/003-arcs.rb
hexapdf-0.27.0 examples/003-arcs.rb
hexapdf-0.26.2 examples/003-arcs.rb
hexapdf-0.26.1 examples/003-arcs.rb
hexapdf-0.26.0 examples/003-arcs.rb
hexapdf-0.25.0 examples/003-arcs.rb
hexapdf-0.24.2 examples/003-arcs.rb
hexapdf-0.24.1 examples/003-arcs.rb
hexapdf-0.24.0 examples/003-arcs.rb
hexapdf-0.23.0 examples/003-arcs.rb
hexapdf-0.22.0 examples/003-arcs.rb
hexapdf-0.21.1 examples/003-arcs.rb
hexapdf-0.21.0 examples/003-arcs.rb
hexapdf-0.20.4 examples/003-arcs.rb