vectorMultiply

From Bohemia Interactive Community
Revision as of 07:01, 4 September 2022 by Leopard20 (talk | contribs)
Jump to navigation Jump to search
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);