vectorMultiply: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - " <h3 style="display:none">Bottom Section</h3>" to "") |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
(46 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 | |game1= arma3 | ||
|version1= 1.22 | |||
|1.22 | |||
|gr2= Math - Vectors | |gr2= Math - Vectors | ||
|descr= Multiplies 3D vector by a scalar. | |||
| | |s1= vector [[vectorMultiply]] scalar | ||
| vector [[ | |p1= vector: [[Array]] - vector 3D or 2D (since Arma 3 v2.00, z coordinate is defaulted to 0) | ||
| | |p2= scalar: [[Number]] | ||
| | |r1= [[Array]] | ||
|x1= <sqf>_newVector = [1,2,3] vectorMultiply 3; // returns [3,6,9]</sqf> | |||
|x1= < | |||
| [[vectorAdd]] | |seealso= [[vectorAdd]] [[vectorDiff]] [[vectorCrossProduct]] [[vectorDotProduct]] [[vectorCos]] [[vectorMagnitude]] [[vectorMagnitudeSqr]] [[vectorDistance]] [[vectorDistanceSqr]] [[vectorDir]] [[vectorUp]] [[setVectorDir]] [[setVectorUp]] [[setVectorDirAndUp]] [[vectorNormalized]] [[vectorFromTo]] [[matrixMultiply]] [[matrixTranspose]] | ||
}} | |x2=<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 normalized, multiplying it by 100 means 100 m in that direction | |||
private _lookPos = _eyePos vectorAdd _100mFurther; // the position where player is looking 100m ahead | |||
</sqf>|x3=<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>}} | |||
<dl class="command_description"> | <dl class="command_description"> | ||
< | |||
<dd class="notedate">Posted on 28 Jun, 2014 | <dt></dt> | ||
<dt class="note">[[User:ffur2007slx2_5| ffur2007slx2_5]] | <dd class="notedate">Posted on 28 Jun, 2014</dd> | ||
<dt class="note">[[User:ffur2007slx2_5| ffur2007slx2_5]]</dt> | |||
<dd class="note"> | <dd class="note"> | ||
{{GVI|arma3|1.22}} Algorithm: | |||
< | <sqf>Vector = [x, y, z]; scalar = a; | ||
Result = [(x * a),(y * a),(z * 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]]. | 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> | ||
</dl> | </dl> |
Revision as of 20:50, 8 March 2024
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:
- 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
-
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.