Back to Aurora Vision Library Lite websiteYou are here:
Start »
Geometry 2D »
Geometry 2D Interpolations »
LerpAngles
Header: |
AVL.h
|
Namespace: |
avl |
Linearly interpolates between two angles in the direction of minimum turn.
Syntax
void avl::LerpAngles
(
float inAngle0,
float inAngle1,
atl::Optional<avl::RotationDirection::Type> inRotationDirection,
avl::AngleRange::Type inAngleRange,
float inLambda,
bool inInverse,
float& outAngle
)
Parameters
|
Name |
Type |
Default |
Description |
|
inAngle0 |
float |
|
|
|
inAngle1 |
float |
|
|
|
inRotationDirection |
Optional<RotationDirection::Type> |
NIL |
Clockwise, counter-clockwise or auto |
|
inAngleRange |
AngleRange::Type |
_0_180 |
|
|
inLambda |
float |
|
Interpolation between the input angles where 0.0 value is equal to inAngle0 and 1.0 to inAngle1 |
|
inInverse |
bool |
|
|
|
outAngle |
float& |
|
|
Examples
LerpAngles performed on red inAngle0 = 15 and blue inAngle1 = 135 with inLambda = 0,25 and inAngleRange = 0-360. Green is the resulting outAngle.
LerpAngles performed on red inAngle0 = 15 and blue inAngle1 = 135 with inLambda = -1,0 and inAngleRange = 0-360. Green is the resulting outAngle.
Remarks
Please note that:
- interpolation begins at inAngle0,
- for positive inLambda values interpolation is performed in the direction given in the inRotationDirection parameter while for negative - in the inverted direction.
Hence when
inLambda = 0,0,
outAngle is equal to
inAngle0, while for
inLambda = 1,0 it's the same as
inAngle1 and for
inLambda = -1,0 - as (
inAngle0 -
inAngle1). Other
inLambda values interpolate between the input angles and beyond.