Module: Prawn::Graphics::Patterns
- Included in:
- Prawn::Graphics
- Defined in:
- lib/prawn/graphics/patterns.rb
Defined Under Namespace
Classes: Gradient, GradientStop
Stable API collapse
-
#fill_gradient(*args, **kwargs) ⇒ Object
Sets the fill gradient.
-
#stroke_gradient(*args, **kwargs) ⇒ Object
Sets the stroke gradient.
Instance Method Details
#fill_gradient(*args, **kwargs) ⇒ Object
Sets the fill gradient. old arguments:
from, to, color1, color2
or
from, r1, to, r2, color1, color2
new arguments:
from: [x, y]
to: [x, y]
r1: radius
r2: radius
stops: [color, color, ...] or
{ position => color, position => color, ... }
apply_transformations: true
Examples:
# draws a horizontal axial gradient that starts at red on the left
# and ends at blue on the right
fill_gradient from: [0, 0], to: [100, 0], stops: ['red', 'blue']
# draws a horizontal radial gradient that starts at red, is green
# 80% of the way through, and finishes blue
fill_gradient from: [0, 0], r1: 0, to: [100, 0], r2: 180,
stops: { 0 => 'red', 0.8 => 'green', 1 => 'blue' }
from
and to
specify the axis of where the gradient should be painted.
r1
and r2
, if specified, make a radial gradient with the starting circle of radius r1
centered at from
and ending at a circle of radius r2
centered at to
. If r1
is not specified, a axial gradient will be drawn.
stops
is an array or hash of stops. Each stop is either just a string indicating the color, in which case the stops will be evenly distributed across the gradient, or a hash where the key is a position between 0 and 1 indicating what distance through the gradient the color should change, and the value is a color string.
Option apply_transformations
, if set true, will transform the gradient's co-ordinate space so it matches the current co-ordinate space of the document. This option will be the default from Prawn v3, and is default true if you use the new arguments format. The default for the old arguments format, false, will mean if you (for example) scale your document by 2 and put a gradient inside, you will have to manually multiply your co-ordinates by 2 so the gradient is correctly positioned.
69 70 71 |
# File 'lib/prawn/graphics/patterns.rb', line 69 def fill_gradient(*args, **kwargs) set_gradient(:fill, *args, **kwargs) end |
#stroke_gradient(*args, **kwargs) ⇒ Object
Sets the stroke gradient. See fill_gradient for a description of the arguments to this method.
75 76 77 |
# File 'lib/prawn/graphics/patterns.rb', line 75 def stroke_gradient(*args, **kwargs) set_gradient(:stroke, *args, **kwargs) end |