Enum printpdf::types::plugins::graphics::extgstate::SpotFunction
[−]
[src]
pub enum SpotFunction { SimpleDot, InvertedSimpleDot, DoubleDot, InvertedDoubleDot, CosineDot, Double, InvertedDouble, Line, LineX, LineY, Round, Ellipse, EllipseA, InvertedEllipseA, EllipseB, EllipseC, InvertedEllipseC, Square, Cross, Rhomboid, Diamond, }
Spot functions, Table 6.1, Page 489 in Pdf Reference v1.7 The code is pseudo code, returning the grey component at (x, y).
Variants
SimpleDot
1 - (pow(x, 2) + pow(y, 2))
InvertedSimpleDot
pow(x, 2) + pow(y, 2) - 1
DoubleDot
(sin(360 * x) / 2) + (sin(360 * y) / 2)
InvertedDoubleDot
- ((sin(360 * x) / 2) + (sin(360 * y) / 2))
CosineDot
(cos(180 * x) / 2) + (cos(180 * y) / 2)
Double
(sin(360 x (x / 2)) / 2) + (sin(360 * y) / 2)
InvertedDouble
- ((sin(360 x (x / 2)) / 2) + (sin(360 * y) / 2))
Line
- abs(y)
LineX
x
LineY
y
Round
if (abs(x) + abs(y) <= 1 { 1 - (pow(x, 2) + pow(y, 2)) } else { pow((abs(x) - 1), 2) + pow((abs(y) - 1), 2) - 1 }
Ellipse
let w = (3 * abs(x)) + (4 * abs(y)) - 3; if w < 0 { 1 - ((pow(x, 2) + pow((abs(y) / 0.75), 2)) / 4) } else if w > 1 { pow((pow((1 - abs(x), 2) + (1 - abs(y)) / 0.75), 2) / 4) - 1 } else { 0.5 - w }
EllipseA
1 - (pow(x, 2) + 0.9 * pow(y, 2))
InvertedEllipseA
pow(x, 2) + 0.9 * pow(y, 2) - 1
EllipseB
1 - sqrt(pow(x, 2) + (5 / 8) * pow(y, 2))
EllipseC
1 - (0.9 * pow(x, 2) + pow(y, 2))
InvertedEllipseC
0.9 * pow(x, 2) + pow(y, 2) - 1
Square
- max(abs(x), abs(y))
Cross
- min(abs(x), abs(y))
Rhomboid
(0.9 * abs(x) + abs(y)) / 2
Diamond
let t = abs(x) + abs(y); if t <= 0.75 { 1 - (pow(x, 2) + pow(y, 2)) } else if t < 1.23 { 1 - (0.85 * abs(x) + abs(y)) } else { pow((abs(x) - 1), 2) + pow((abs(y) - 1), 2) - 1 }
Trait Implementations
impl Debug for SpotFunction
[src]
impl PartialEq for SpotFunction
[src]
fn eq(&self, __arg_0: &SpotFunction) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Copy for SpotFunction
[src]
impl Clone for SpotFunction
[src]
fn clone(&self) -> SpotFunction
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more