vectorMultiply

From Bohemia Interactive Community
Revision as of 18:09, 3 July 2024 by Lou Montana (talk | contribs) (Add array support)
Jump to navigation Jump to search
Hover & click on the images for description

Description

Description:
Multiplies an array of numbers by a scalar or another array of numbers.
Groups:
Math - Vectors

Syntax

Syntax:
numArray vectorMultiply multiplier
Parameters:
numArray: Array of Numbers - e.g vector 3D or Arma 3 logo black.png2.00 2D (the z coordinate is defaulted to 0)
multiplier: Number or (since ?) Array of Numbers
Return Value:
Array of Numbers

Examples

Example 1:
_newVector = [1,2,3] vectorMultiply 3; // returns [3,6,9]
Example 2:
[1,2,3,4] vectorMultiply [1,2,3,4]; // [1,4,9,16] [1,2,3,4] vectorMultiply 2; // [2,4,6,8] [1,2,3,4] vectorMultiply [2]; // [2,2,3,4] [2] vectorMultiply [1,2,3,4]; // [2,2,3,4] [1,2,3] vectorMultiply [1,2,3,4,5]; // [1,4,9,4,5]
Example 3:
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 normalised (length = 1m), multiplying it by 100 means 100m in that direction private _lookPos = _eyePos vectorAdd _100mFurther; // the position where player is looking 100m ahead
Example 4:
// 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 vectorMagnitude matrixMultiply

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
ffur2007slx2_5 - c
Posted on Jun 28, 2014 - 08:21 (UTC)
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);