linearConversion: Difference between revisions
Jump to navigation
Jump to search
(syntax) |
Lou Montana (talk | contribs) m (Text replacement - "\] +\[" to "] [") |
||
(55 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 |= | |game1= arma3 | ||
|version1= 0.50 | |||
| | |gr1= Math | ||
| Converts value | |descr= Converts given value from given "from" range to wanted "to" range. If clipping is set to [[true]], the resulting value is guaranteed to be within "to" range no matter what. {{Feature|arma3|Faster alternative to [[BIS_fnc_linearConversion]].}} | ||
| | |s1= [[linearConversion]] [minFrom, maxFrom, value, minTo, maxTo, clip] | ||
|p1= | |p1= minFrom: [[Number]] - start "from" range | ||
|p2= | |p2= maxFrom: [[Number]] - end "from" range | ||
|p3= | |p3= value: [[Number]] - given value from "from" range | ||
|p4= | |p4= minTo: [[Number]] - start "to" range | ||
|p5= | |p5= maxTo: [[Number]] - end "to" range | ||
|p6= | |p6= clip: [[Boolean]] - (Optional, default [[false]]) if [[true]], resulting value cannot leave "to" range | ||
| | |r1= [[Number]] - respectful value from "to" range | ||
| [ | |x1= <sqf> | ||
// Say given range is 0 to 1 and wanted range is 0 to 100 (percent calculation). Given value 0.55 then will be 55 | |||
linearConversion [0, 1, 0.55, 0, 100]; | |||
// but if given value is 1.1 it will return 110 | |||
linearConversion [0, 1, 1.1, 0, 100, false]; | |||
// or if clipping is true it will return 100 | |||
linearConversion [0, 1, 1.1, 0, 100, true]; | |||
</sqf> | |||
|x2= <sqf>linearConversion [4, 8, 5, 0, 1, false];</sqf> | |||
| | |x3= <sqf> | ||
// Calculate days from 1/1/1970 | |||
fnc_daysFromEpoc = | |||
{ | |||
private _year = param [0]; | |||
private _days = 0; | |||
for "_i" from 1970 to _year - 1 do | |||
{ | |||
_days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false]; | |||
}; | |||
_days + linearConversion [0, 1, dateToNumber _this, 0, 365, false]; | |||
}; | |||
| | hint str (date call fnc_daysFromEpoc); | ||
</sqf> | |||
|seealso= [[round]] [[floor]] [[ceil]] [[vectorLinearConversion]] [[bezierInterpolation]] | |||
}} | }} | ||
Latest revision as of 11:46, 5 May 2024
Description
- Description:
- Converts given value from given "from" range to wanted "to" range. If clipping is set to true, the resulting value is guaranteed to be within "to" range no matter what.
- Groups:
- Math
Syntax
- Syntax:
- linearConversion [minFrom, maxFrom, value, minTo, maxTo, clip]
- Parameters:
- minFrom: Number - start "from" range
- maxFrom: Number - end "from" range
- value: Number - given value from "from" range
- minTo: Number - start "to" range
- maxTo: Number - end "to" range
- clip: Boolean - (Optional, default false) if true, resulting value cannot leave "to" range
- Return Value:
- Number - respectful value from "to" range
Examples
- Example 1:
- // Say given range is 0 to 1 and wanted range is 0 to 100 (percent calculation). Given value 0.55 then will be 55 linearConversion [0, 1, 0.55, 0, 100]; // but if given value is 1.1 it will return 110 linearConversion [0, 1, 1.1, 0, 100, false]; // or if clipping is true it will return 100 linearConversion [0, 1, 1.1, 0, 100, true];
- Example 2:
- Example 3:
- // Calculate days from 1/1/1970 fnc_daysFromEpoc = { private _year = param [0]; private _days = 0; for "_i" from 1970 to _year - 1 do { _days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false]; }; _days + linearConversion [0, 1, dateToNumber _this, 0, 365, false]; }; hint str (date call fnc_daysFromEpoc);
Additional Information
- See also:
- round floor ceil vectorLinearConversion bezierInterpolation
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