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 more