Back to Aurora Vision Library website

You are here: Start » Function Reference » Geometry 2D » Geometry 2D Interpolations » LerpVectors_Radial

LerpVectors_Radial


Header: AVL.h
Namespace: avl
Module: FoundationLite

Linearly interpolates between two radial vectors.

Syntax

C++
C#
 
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
Input value inVector0 const Vector2D&
Input value inVector1 const Vector2D&
Input value inRotationDirection Optional<RotationDirection::Type> NIL Clockwise, counter-clockwise or auto
Input value inLambda const float - - 0.5f Interpolation between the input vectors where 0.0 value is equal to inVector0 and 1.0 to inVector1
Output value 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.