# FMX.Types.TInterpolationType

Delphi

```TInterpolationType = (Linear, Quadratic, Cubic, Quartic, Quintic, Sinusoidal, Exponential, Circular, Elastic, Back, Bounce);
```

C++

```enum class DECLSPEC_DENUM TInterpolationType : unsigned int { Linear, Quadratic, Cubic, Quartic, Quintic, Sinusoidal, Exponential, Circular, Elastic, Back, Bounce };
```

## Contents

#### Properties

Type Visibility Source Unit Parent
enum public
FMX.Types.pas
FMX.Types.hpp
FMX.Types FMX.Types

## Description

The type of the Interpolation property of an animation.

Determines how the rate at which the current value (or StartValue) of a property is changed to the destination value (StopValue) over time. On a graph plotting the value of a property the animation is applied to (using the TAnimation PropertyName property) one endpoint is represented by the start value at t=0. The other endpoint is the stop value at t=Duration seconds. Many different paths can connect these two points. The only requirement is that time keeps moving forward! TInterpolationType provides a variety of paths to choose from.

With a TInterpolationType of Linear, the value of the property changes linearly over time, and the path between our start and stop points is a straight line. This and other values for TInterpolationType are described below.

See the AttachTAnimation (Delphi) code example referenced at the bottom for the visual demonstration.

TInterpolationType can take one of the following values:

Value Meaning

Linear

A linear interpolation. The property value this animation applies to changes constantly over time.

A quadratic function is applied to the path between the start and stop points. The slope of the path is zero at the start point and increases constantly over time. A scalar is applied to the function to make the endpoint fall on the path.

Cubic

The interpolation is of the form y = x**3. The slope of the path is zero at the start point and increases much faster than the quadratic function over the path.

Quartic

The interpolation is of the form y = x**4. The slope of the path is zero at the start point and increases much faster than the quadratic function over the path.

Quintic

The interpolation is of the form y = x**5. The slope of the path is zero at the start point and increases much faster than the quadratic function over the path.

Sinusoidal

The interpolation is of the form y = sin(x). The slope of the path is zero at the start point and places the first inflexion of the sin curve (x=pi) at the stop point.

Exponential

The interpolation is of the form y = e**x. The slope of the path is one at the start point and increase much faster than the quadratic function over the path.

Circular

The path between the start and stop point for this interpolation is a quarter of a circle. The slope of the path is zero at the start point and verticle at the stop point.

Elastic

The path follows a progressive sinusoidal geometric interpolation. The sinusoidal amplitude of the path can be smaller at the beginning and bigger at the end or vice-versa depending on the animation type (in / out).

Back

The path does not follow a geometric interpolation. The value (y coordinate) increases, moving back toward the Start Value, but time (x value) must always move in a positive direction.

Bounce

The path depicts a bouncing ball. The path is made up of circular curves with curvature away from the straight line that connects the start and stop points. These curves are connected by sharp points.

Several properties of the TAnimation and TFloatAnimation can effect the path specified by the interpolation. The descriptions above are for:

• StartFromCurrent = True
• AnimationType = atIn

Setting the AnimationType to Out causes everything said above about the start point to apply to the stop point. See documentation for these animation properties for their effect.