linearConversion: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*) *<\/code>" to "<code>$1$2$3</code>")
m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*) *<\/code>" to "<code>$1$2$3</code>")
Line 27: Line 27:
linearConversion [0,1,0.55,0,100];
linearConversion [0,1,0.55,0,100];
// but if given value is 1.1 it will return 110
// but if given value is 1.1 it will return 110
linearConversion [0,1,1.1,0,100,[[false]]];
linearConversion [0,1,1.1,0,100,false];
// or if clipping is [[true]] it will return 100
// or if clipping is [[true]] it will return 100
linearConversion [0,1,1.1,0,100,true];</code>
linearConversion [0,1,1.1,0,100,true];</code>
Line 37: Line 37:
{
{
private _year = param [0];
private _year = param [0];
[[private]] _days = 0;
private _days = 0;
[[for]] "_i" [[from]] 1970 [[to]] _year - 1 [[do]]  
[[for]] "_i" [[from]] 1970 [[to]] _year - 1 [[do]]  
{
{

Revision as of 14:02, 12 May 2022

Hover & click on the images for description

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.
Arma 3
Faster alternative to BIS_fnc_linearConversion.
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 (Optional, default false): Boolean - 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:
linearConversion [4, 8, 5, 0, 1, false];
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