vectorMultiply: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Lou Montana (talk | contribs) m (Add version) |
||
(68 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 |= | |game1= arma3 | ||
|version1= 1.22 | |||
| | |gr2= Math - Vectors | ||
|descr= Multiplies an array of numbers by a scalar or another array of numbers. | |||
| | |s1= numArray [[vectorMultiply]] multiplier | ||
| | |p1= numArray: [[Array]] of [[Number]]s - {{GVI|arma3|2.14|size= 0.75}} an array of any size - e.g {{GVI|arma3|1.22|size= 0.75}} vector 3D or {{GVI|arma3|2.00|size= 0.75}} 2D (the z coordinate was defaulted to 0) | ||
| | |p2= multiplier: [[Number]] or {{GVI|arma3|2.14|size= 0.75}} [[Array]] of [[Number]]s | ||
| | |r1= [[Array]] of [[Number]]s | ||
| | |x1= <sqf>_newVector = [1,2,3] vectorMultiply 3; // returns [3,6,9]</sqf> | ||
| [[ | |x2= <sqf> | ||
[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] | |||
</sqf> | |||
| | |x3= <sqf> | ||
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 | |||
</sqf> | |||
|x4= <sqf> | |||
// 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"]; | |||
</sqf> | |||
|seealso= [[vectorAdd]] [[vectorDiff]] [[vectorCrossProduct]] [[vectorDotProduct]] [[vectorMagnitude]] [[matrixMultiply]] | |||
}} | }} | ||
{{Note | |||
|user= ffur2007slx2_5 | |||
< | |timestamp= 20140628082100 | ||
|text= {{GVI|arma3|1.22}} Algorithm: | |||
<sqf> | |||
Vector = [x, y, z]; scalar = a; | |||
Result = [(x * a), (y * a), (z * a)]; | |||
</sqf> | |||
< | 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]]. | ||
<sqf>_obj setVelocity (((getPosASL _target) vectorDiff (getPosASL _obj)) vectorMultiply 2);</sqf> | |||
< | }} | ||
Latest revision as of 18:27, 3 July 2024
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 - 2.14 an array of any size - e.g 1.22 vector 3D or 2.00 2D (the z coordinate was defaulted to 0)
- multiplier: Number or 2.14 Array of Numbers
- Return Value:
- Array of Numbers
Examples
- Example 1:
- 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
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 Jun 28, 2014 - 08:21 (UTC)
-
1.22 Algorithm:
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.