diff --git a/lib/java/com/google/android/material/progressindicator/CircularDrawingDelegate.java b/lib/java/com/google/android/material/progressindicator/CircularDrawingDelegate.java index 0559d47b4c1..8f26005748d 100644 --- a/lib/java/com/google/android/material/progressindicator/CircularDrawingDelegate.java +++ b/lib/java/com/google/android/material/progressindicator/CircularDrawingDelegate.java @@ -493,7 +493,7 @@ private void createWavyPath( private void appendCubicPerHalfCycle( @NonNull Path outPath, @NonNull PathPoint anchor1, @NonNull PathPoint anchor2) { - float controlLength = adjustedWavelength / 2 * SINE_WAVE_FORM_SMOOTHNESS; + float controlLength = adjustedWavelength / 2 * WAVE_SMOOTHNESS; PathPoint control1 = new PathPoint(anchor1); PathPoint control2 = new PathPoint(anchor2); control1.moveAlong(controlLength); diff --git a/lib/java/com/google/android/material/progressindicator/DrawingDelegate.java b/lib/java/com/google/android/material/progressindicator/DrawingDelegate.java index 719f5adad35..9d8559715c6 100644 --- a/lib/java/com/google/android/material/progressindicator/DrawingDelegate.java +++ b/lib/java/com/google/android/material/progressindicator/DrawingDelegate.java @@ -37,9 +37,9 @@ /** A delegate abstract class for drawing the graphics in different drawable classes. */ abstract class DrawingDelegate { - // The length of the control handles of the cubic bezier curve simulating y = A cos(PI*x), - // where 0 <= x <= 1 (half cycle). - static final float SINE_WAVE_FORM_SMOOTHNESS = 0.364f; + // The length of the control handles of the cubic bezier curve simulating half cycle (from peak to + // trough) with wavelength = 2. + static final float WAVE_SMOOTHNESS = 0.48f; S spec; diff --git a/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java b/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java index be28f7b3bca..98cf60fbddc 100644 --- a/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java +++ b/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java @@ -363,7 +363,7 @@ void invalidateCachedPaths() { if (spec.hasWavyEffect()) { int cycleCount = (int) (trackLength / spec.wavelength); adjustedWavelength = trackLength / cycleCount; - float smoothness = SINE_WAVE_FORM_SMOOTHNESS; + float smoothness = WAVE_SMOOTHNESS; for (int i = 0; i <= cycleCount; i++) { cachedActivePath.cubicTo(2 * i + smoothness, 0, 2 * i + 1 - smoothness, 1, 2 * i + 1, 1); cachedActivePath.cubicTo(