Back to Aurora Vision Library Lite websiteYou are here:
Start »
Geometry 2D »
Geometry 2D Interpolations »
LerpVectors_Radial
Header: |
AVL.h
|
Namespace: |
avl |
Linearly interpolates between two radial vectors.
Syntax
void avl::LerpVectors_Radial
(
const avl::Vector2D& inVector0,
const avl::Vector2D& inVector1,
atl::Optional<avl::RotationDirection::Type> inRotationDirection,
const float inLambda,
avl::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
Please note that:
- 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.
Hence when
inLambda = 0,0,
outVector is equal to
inVector0, while for
inLambda = 1,0 it's the same as
inVector1 and for
inLambda = -1,0 - as the previously described vector. Other
inLambda values interpolate between the input vectors and beyond.