bezierInterpolation: Difference between revisions
Jump to navigation
Jump to search
Killzone Kid (talk | contribs) (see also) |
Killzone Kid (talk | contribs) (example) |
||
Line 34: | Line 34: | ||
[[player]] [[modelToWorld]] [0,0,4] | [[player]] [[modelToWorld]] [0,0,4] | ||
]),[],0,"CAN_COLLIDE"]; | ]),[],0,"CAN_COLLIDE"]; | ||
};</code> | | };</code> |Example1= | ||
|x2= Create a map marker curve from 4 control points:<code>[[private]] _controlPoints = [[100,-90],[200,-30],[150,60],[100,90]] [[apply]] { [[player]] [[getRelPos]] [[_x]] }; | |||
{ | |||
[[private]] _marker = [[createMarkerLocal]] <nowiki>[</nowiki>[[str]] [[_x]], [[_x]]]; | |||
_marker [[setMarkerTypeLocal]] "mil_objective"; | |||
_marker [[setMarkerTextLocal]] ("P" + [[str]] [[_forEachIndex]]); | |||
} | |||
[[forEach]] _controlPoints; | |||
[[for]] "_i" [[from]] 0 [[to]] 1 [[step]] 0.01 [[do]] | |||
{ | |||
[[private]] _marker = [[createMarkerLocal]] <nowiki>[</nowiki>[[str]] _i, _i [[bezierInterpolation]] _controlPoints]; | |||
_marker [[setMarkerTypeLocal]] "mil_dot"; | |||
}; | |||
[[openMap]] [[true]];</code>|Example2= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 09:30, 25 November 2019
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)
- 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:
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 to 1 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