GetChangedPosition(vector, float, float)

Convenience function that returns a vector that is fDistance away in fAngle direction

vector GetChangedPosition(
    vector vOriginal,
    float fDistance,
    float fAngle
);

Parameters

vOriginal

Original Position as a Vector

fDistance

Distance to new location

fAngle

Direction to new location


Description

This is a convenience function that returns a vector representing the position that is [(fDistance:float*meters) at fAngle:float] from vOriginal:vector. The function does not calculate any change in the Z-axis, instead assigning the current Z-axis to the new position. If a negative coordinate is generated, the absolute value will be used instead.


Calls
float GetChangeInX(float fDistance, float fAngle)
float GetChangeInY(float fDistance, float fAngle)



Remarks

This writer has to wonder why the author of this function didn’t simply write it as follows:
vector vChanged;
vChanged.z = vOriginal.z;
vChanged.x = vOriginal.x + (fDistance* Cos(fAngle));
if (vChanged.x < 0.0)
vChanged.x = - vChanged.x;
vChanged.y = vOriginal.y + (fDistance* Sin(fAngle));
if (vChanged.y < 0.0)
vChanged.y = - vChanged.y;

return vChanged;
This would have avoided the cognitive overhead of two extra functions (GetChangeInX, and GetChangeInY). Although I can see the need for a AbsFloat(fNum:Float):float that returns the absolute value of a float (since the Abs function takes an int)...


Requirements

#include "x0_i0_position"

Version

1.61

See Also

functions: GetChangeInX | GetChangeInY
categories: Math Functions | Miscellaneous Functions | Movement Functions


 author: Michael Nork