RFR: 8372203: Piecewise linear easing function [v8]
Nir Lisker
nlisker at openjdk.org
Thu Nov 27 09:03:33 UTC 2025
On Wed, 26 Nov 2025 23:17:39 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:
>> Implementation of the [linear](https://www.w3.org/TR/css-easing-2/#the-linear-easing-function) easing function, which is now widely supported by all browsers, but still missing in JavaFX.
>>
>> It allows developers to approximate arbitrary easing functions with linear segments:
>>
>>
>> linear(
>> /* Start to 1st bounce */
>> 0, 0.063, 0.25, 0.563, 1 36.4%,
>> /* 1st to 2nd bounce */
>> 0.812, 0.75, 0.813, 1 72.7%,
>> /* 2nd to 3rd bounce */
>> 0.953, 0.938, 0.953, 1 90.9%,
>> /* 3rd bounce to end */
>> 0.984, 1 100% 100%
>> )
>>
>>
>> <img src="https://github.com/user-attachments/assets/73aac0d4-0185-47c5-8791-bdb247eb69c8" width="400"/>
>
> Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
>
> doc change
modules/javafx.graphics/src/main/java/com/sun/scenario/animation/LinearInterpolator.java line 44:
> 42: if (controlPoints == null) {
> 43: throw new NullPointerException("controlPoints cannot be null");
> 44: }
You can use `Objects.requireNonNull`.
modules/javafx.graphics/src/main/java/javafx/animation/Interpolator.java line 100:
> 98: * Returns a piecewise-linear interpolator with the specified control points.
> 99: * <p>
> 100: * Each control point associates an input progress value (X) with an output progress value (Y).
I think an explanation of what these progress values are will help, especially with names such as "input" and "output" associated with them instead of the `x, y` coordinate value names one could expect.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1977#discussion_r2567548606
PR Review Comment: https://git.openjdk.org/jfx/pull/1977#discussion_r2567678868
More information about the openjfx-dev
mailing list