Skip to content

expoOut glitch #6

@dirkpostma

Description

@dirkpostma

The expoOut function is meant to serve as an ease to gradually go from 0 to 1. I noted a glitch. When going from 0.0 to 1.0 in steps of 0.01, the last few values are as follows:

input: output:

0.96 0.9987114180558858
0.97 0.9987977105338428
0.98 0.9988782242626982
0.99 0.9989533462279919
1 1 
Diff from 0.98 to 0.99: 0.00007512196529368964
Diff from 0.99 to 1.00:  0.001046653772008077

As you can see, the diff 0.99 to 1.00 is substantually bigger than the diff from 0.98 to 0.99. In animations, this causes excactly what you try to prevent!

Looking at the code:

function expoOut(t) {
  return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t)
}

Returning 1.0 when t === 1.0 is WRONG in my opinion.

Agree?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions