Back to Aurora Vision Library Lite website

You are here: Start » Geometry 2D » Geometry 2D Interpolations » LerpAngles

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
Input value inAngle0 float
Input value inAngle1 float
Input value inRotationDirection Optional<RotationDirection::Type> NIL Clockwise, counter-clockwise or auto
Input value inAngleRange AngleRange::Type _0_180
Input value inLambda float Interpolation between the input angles where 0.0 value is equal to inAngle0 and 1.0 to inAngle1
Input value inInverse bool
Output value 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.