public static Color GetRadiallyBlurred(int row, int col, Color sourceColor, int centerRow, int centerCol, Color blurColor, double maxRadius, RadialEffectDirection direction) { int xDist = centerRow - row, yDist = centerCol - col; double dist = Math.Sqrt(xDist * xDist + yDist * yDist); double effectWeight; if(direction == RadialEffectDirection.IncreaseTowardsBorder) { effectWeight = Math.Min(dist, maxRadius) / maxRadius; } else { effectWeight = 1 - (Math.Min(dist, maxRadius) / maxRadius); } return Blend(sourceColor, blurColor, effectWeight); }
public static Color GetRadiallyBlurred(int row, int col, Color sourceColor, int centerRow, int centerCol, Color blurColor, double maxRadius, RadialEffectDirection direction) { int xDist = centerRow - row, yDist = centerCol - col; double dist = Math.Sqrt(xDist * xDist + yDist * yDist); double effectWeight; if (direction == RadialEffectDirection.IncreaseTowardsBorder) { effectWeight = Math.Min(dist, maxRadius) / maxRadius; } else { effectWeight = 1 - (Math.Min(dist, maxRadius) / maxRadius); } return(Blend(sourceColor, blurColor, effectWeight)); }