[][src]Crate gravitas

Gravitas is a collection of equations for making UI elements move in response to touch gestures.

There are also implementations for Java and JavaScript (which has some interactive examples).

Each simulation models a single value and generally has a setup function that takes the initial position and velocity. Normally you would compute these in response to a touch gesture ending. All of the simulations are parametric over time and have been algebraically integrated (rather than using a numerical integration method at runtime). The advantage of algebraic integration is lower CPU overhead, and no odd behavior if frames are dropped.

Structs

Friction

a position with velocity that slows down due to drag.

Gravity

a position under the influence of gravity (or any other constant acceleration), as defined by Newton's 2nd Law: F = ma.

Pager

Pager is similar to Scroll, except it contains user supplied snap points which the simulation will be attracted to. These snap points are supplied to the constructor.

PagerSnapPoint

A SnapPoint is either an end point or a point of attraction. Every pager needs at least two snap points to define the extents

Scroll

a combination of friction and springs to create a touch-driven scrolling simulation.

Spring

a position controlled by a spring as defined by Hooke's law, F = -kx * cv.

Enums

PagerSnapQuery

Any number can be either between two snap points, or beyond one of the extents.

Traits

Simulation

common methods implemented by every simulation allowing easy integration into an animation system.