You are here: Start » Function Reference » Geometry 2D » Geometry 2D Interpolations » LerpVectors_Radial
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | FoundationLite |
Linearly interpolates between two radial vectors.
Syntax
void fil::LerpVectors_Radial ( const fil::Vector2D& inVector0, const fil::Vector2D& inVector1, ftl::Optional<fil::RotationDirection::Type> inRotationDirection, const float inLambda, fil::Vector2D& outVector )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
![]() |
inVector0 | const Vector2D& | |||
![]() |
inVector1 | const Vector2D& | |||
![]() |
inRotationDirection | Optional<RotationDirection::Type> | NIL | Clockwise, counter-clockwise or auto | |
![]() |
inLambda | const float | -![]() ![]() |
0.5f | Interpolation between the input vectors where 0.0 value is equal to inVector0 and 1.0 to inVector1 |
![]() |
outVector | Vector2D& |
Description
Note that because of inaccuracies of floating-point arithmetic, some geometric operations (including this one) may lead to unpredictable results for degenerated cases. In this filter such a case occurs when a zero vector is given on input.
Examples
![]() |
LerpVectors performed on red inVector0 = (150, 150) and blue inVector1 = (-50, 50) with inLambda = 0,25 and inRotationDirection = Clockwise. Green is the resulting outVector.
![]() |
LerpVectors performed on red inVector0 = (50, 50) and blue inVector1 = (-25, 25) with inLambda = -1,0 and inRotationDirection = Clockwise. Green is the resulting outVector.
Remarks
- interpolation begins at inVector0,
- for positive inLambda values interpolation is performed in the direction of inVector1 while for negative - in the direction of a vector acquired by mirroring inVector1 by a line determined by inVector0 and its length properly adjusted.