Enum printpdf::SpotFunction
source · pub enum SpotFunction {
Show 21 variants
SimpleDot,
InvertedSimpleDot,
DoubleDot,
InvertedDoubleDot,
CosineDot,
Double,
InvertedDouble,
Line,
LineX,
LineY,
Round,
Ellipse,
EllipseA,
InvertedEllipseA,
EllipseB,
EllipseC,
InvertedEllipseC,
Square,
Cross,
Rhomboid,
Diamond,
}
Expand description
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§
source§impl Clone for SpotFunction
impl Clone for SpotFunction
source§fn clone(&self) -> SpotFunction
fn clone(&self) -> SpotFunction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for SpotFunction
impl Debug for SpotFunction
source§impl PartialEq for SpotFunction
impl PartialEq for SpotFunction
source§fn eq(&self, other: &SpotFunction) -> bool
fn eq(&self, other: &SpotFunction) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Copy for SpotFunction
impl StructuralPartialEq for SpotFunction
Auto Trait Implementations§
impl RefUnwindSafe for SpotFunction
impl Send for SpotFunction
impl Sync for SpotFunction
impl Unpin for SpotFunction
impl UnwindSafe for SpotFunction
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more