bezierInterpolation: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|exec=" to "|serverExec=")
m (Text replacement - " <nowiki>[</nowiki>" to " [<nowiki/>")
Line 38: Line 38:
|x2= Create a map marker curve from 4 control points with overlap (progress is -0.5...1.5 instead of 0...1):<code>[[private]] _controlPoints = [[100,-90],[200,-30],[150,60],[100,90]] [[apply]] { [[player]] [[getRelPos]] [[_x]] };
|x2= Create a map marker curve from 4 control points with overlap (progress is -0.5...1.5 instead of 0...1):<code>[[private]] _controlPoints = [[100,-90],[200,-30],[150,60],[100,90]] [[apply]] { [[player]] [[getRelPos]] [[_x]] };
{
{
[[private]] _marker = [[createMarkerLocal]] <nowiki>[</nowiki>[[str]] [[_x]], [[_x]]];
[[private]] _marker = [[createMarkerLocal]] [<nowiki/>[[str]] [[_x]], [[_x]]];
_marker [[setMarkerTypeLocal]] "mil_objective";
_marker [[setMarkerTypeLocal]] "mil_objective";
_marker [[setMarkerTextLocal]] ("P" + [[str]] [[_forEachIndex]]);
_marker [[setMarkerTextLocal]] ("P" + [[str]] [[_forEachIndex]]);
Line 45: Line 45:
[[for]] "_i" [[from]] -0.5 [[to]] 1.5 [[step]] 0.01 [[do]]
[[for]] "_i" [[from]] -0.5 [[to]] 1.5 [[step]] 0.01 [[do]]
{
{
[[private]] _marker = [[createMarkerLocal]] <nowiki>[</nowiki>[[str]] _i, _i [[bezierInterpolation]] _controlPoints];
[[private]] _marker = [[createMarkerLocal]] [<nowiki/>[[str]] _i, _i [[bezierInterpolation]] _controlPoints];
_marker [[setMarkerTypeLocal]] "mil_dot";
_marker [[setMarkerTypeLocal]] "mil_dot";
};
};

Revision as of 14:07, 19 March 2020

Hover & click on the images for description

Description

Description:
Gets interpolated value based on Bézier curve with given control points (progress value is 0...1 for a curve that starts at pos0 and finishes at posN)
bezierInterpolation2.jpg
Multiplayer:
-
Groups:
Uncategorised

Syntax

Syntax:
progress bezierInterpolation [pos0, pos1,... posN]
Parameters:
progress: Number - interpolation value
[pos0, pos1,... posN]: Array
pos: Array in format Position3D
Return Value:
Array - a single point position in format Position3D based on progress value

Examples

Example 1:
Quick demonstration that spawns some spheres around player object:for "_i" from 0 to 1 step 0.05 do { createVehicle ["Sign_Sphere10cm_F",(_i bezierInterpolation [ player modelToWorld [0,0,0], player modelToWorld [0,2,2], player modelToWorld [2,0,2], player modelToWorld [0,0,4] ]),[],0,"CAN_COLLIDE"]; };
Example 2:
Create a map marker curve from 4 control points with overlap (progress is -0.5...1.5 instead of 0...1):private _controlPoints = [[100,-90],[200,-30],[150,60],[100,90]] apply { player getRelPos _x }; { private _marker = createMarkerLocal [str _x, _x]; _marker setMarkerTypeLocal "mil_objective"; _marker setMarkerTextLocal ("P" + str _forEachIndex); } forEach _controlPoints; for "_i" from -0.5 to 1.5 step 0.01 do { private _marker = createMarkerLocal [str _i, _i bezierInterpolation _controlPoints]; _marker setMarkerTypeLocal "mil_dot"; }; openMap true;

Additional Information

See also:
linearConversionvectorLinearConversion

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

Bottom Section