BlurFunction
FunctionWithCachingFunctionA polyline (strictly increasing x) that is progressively blurred by repeated averaging of vertex y-values with their neighbours. In the joint limit of infinitely dense sampling and infinitely many averaging passes this is the one-dimensional heat equation on the vertex-x domain, so the blurred curve is the diffusion of the polyline towards its steady state.
The amount of blur is controlled by a second Function evaluated in x (default: a constant), clamped to 0 (no blur, the original polyline) .. 1 (full blur). The endpoint y-values are pinned (Dirichlet), so the full-blur steady state is the straight chord between the first and last vertex.
Evaluation is a closed-form eigenmode sum: the polyline is expanded once into a sine series and each mode decays as e^(-(nπ)²·τ), where τ is the dimensionless diffusion time mapped from the blur amount. No dense point cloud is ever materialised.
Constructors
BlurFunction
#BlurFunction
#| points (IEnumerable<Point2d>) | Polyline vertices. Sorted left to right internally. |
| blur (Function) | Blur amount as a function of x (null -> no blur). Clamped to 0..1. |
Properties
Derivative
Integral
Notation
Methods
Asymptotes
AutoCoDomain
DomainEstimate
#EmitIntegral
Holes
#Integrate
Poles
YYYY
| x (double[]) | Value to evaluate. |