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
sourceimpl Clone for SpotFunction
impl Clone for SpotFunction
sourcefn clone(&self) -> SpotFunction
fn clone(&self) -> SpotFunction
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SpotFunction
impl Debug for SpotFunction
sourceimpl PartialEq<SpotFunction> for SpotFunction
impl PartialEq<SpotFunction> for SpotFunction
sourcefn 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 ==
. Read more
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more