vectorMultiply

From Bohemia Interactive Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description

Description

Description:
Multiplies 3D vector by a scalar.
Groups:
Math - Vectors

Syntax

Syntax:
vector vectorMultiply scalar
Parameters:
vector: Array - vector 3D or 2D (since Arma 3 v2.00, z coordinate is defaulted to 0)
scalar: Number
Return Value:
Array

Examples

Example 1:
_newVector = [1,2,3] vectorMultiply 3; // returns [3,6,9]
Example 2:
private _eyePos = eyePos player; private _eyeDir = getCameraViewDirection player; // this is a normalized vector, i.e. its magnitude is 1 private _100mFurther = _eyeDir vectorMultiply 100; // since _eyeDir is normalized, multiplying it by 100 means 100 m in that direction private _lookPos = _eyePos vectorAdd _100mFurther; // the position where player is looking 100m ahead
Example 3:
// Override firing to throw the player towards where he's aiming player allowDamage false; player addAction ["", { player setVelocity ((player weaponDirection "") vectorMultiply 20); }, "", 0, false, true, "DefaultAction"];

Additional Information

See also:
vectorAdd vectorDiff vectorCrossProduct vectorDotProduct vectorCos vectorMagnitude vectorMagnitudeSqr vectorDistance vectorDistanceSqr vectorDir vectorUp setVectorDir setVectorUp setVectorDirAndUp vectorNormalized vectorFromTo matrixMultiply matrixTranspose

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on 28 Jun, 2014
ffur2007slx2_5
Arma 3 logo black.png1.22 Algorithm:
Vector = [x, y, z]; scalar = a; Result = [(x * a), (y * a), (z * a)];
It is recommended to use vectorMultiply instead of BIS_fnc_vectorMultiply. This is a very useful function, as it can be used with the velocity command to move an object from one position to another. (ie <vector1> to <vector2>) - ensure both positions are found using getPosASL.
_obj setVelocity (((getPosASL _target) vectorDiff (getPosASL _obj)) vectorMultiply 2);