# CurveFit

Artifact: [androidx.constraintlayout:constraintlayout-core](https://developer.android.com/jetpack/androidx/releases/constraintlayout) [View Source](https://cs.android.com/search?q=file:androidx/constraintlayout/core/motion/utils/CurveFit.java+class:androidx.constraintlayout.core.motion.utils.CurveFit) Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

*** ** * ** ***


```
public abstract class CurveFit
```

<br />

Known direct subclasses [ArcCurveFit](https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/ArcCurveFit), [LinearCurveFit](https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/LinearCurveFit), [MonotonicCurveFit](https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/MonotonicCurveFit)

|---|---|
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/ArcCurveFit` | This provides provides a curve fit system that stitches the x,y path together with quarter ellipses |
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/LinearCurveFit` | This performs a simple linear interpolation in multiple dimensions |
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/MonotonicCurveFit` | This performs a spline interpolation in multiple dimensions |

*** ** * ** ***

Base class for curve fitting / interpolation Curve fits must be capable of being differentiable and extend beyond the points (extrapolate)

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#CONSTANT() = 2` |
| `static final int` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#LINEAR() = 1` |
| `static final int` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#SPLINE() = 0` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#CurveFit()()` |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#get(int,double[],double[][])(int type, double[] time, double[][] y)` |
| `static https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getArc(int[],double[],double[][])(int[] arcModes, double[] time, double[][] y)` |
| `abstract double` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getPos(double,int)(double t, int j)` |
| `abstract void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getPos(double,double[])(double t, double[] v)` |
| `abstract void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getPos(double,float[])(double t, float[] v)` |
| `abstract double` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getSlope(double,int)(double t, int j)` |
| `abstract void` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getSlope(double,double[])(double t, double[] v)` |
| `abstract double[]` | `https://developer.android.com/reference/androidx/constraintlayout/core/motion/utils/CurveFit#getTimePoints()()` |

## Constants

### CONSTANT

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static final int CONSTANT = 2
```

### LINEAR

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static final int LINEAR = 1
```

### SPLINE

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static final int SPLINE = 0
```

## Public constructors

### CurveFit

Added in 1.1.2

```
public CurveFit()
```

## Public methods

### get

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static CurveFit get(int type, double[] time, double[][] y)
```

### getArc

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public static CurveFit getArc(int[] arcModes, double[] time, double[][] y)
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract double getPos(double t, int j)
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract void getPos(double t, double[] v)
```

### getPos

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract void getPos(double t, float[] v)
```

### getSlope

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract double getSlope(double t, int j)
```

### getSlope

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract void getSlope(double t, double[] v)
```

### getTimePoints

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
public abstract double[] getTimePoints()
```