drawTriangle: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
Lou Montana (talk | contribs) m (Text replacement - "[[Image:" to "[[File:") |
||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
|gr1= GUI Control - Map | |gr1= GUI Control - Map | ||
|descr= [[ | |descr= [[File:drawTriangle.jpg|right|250px]] | ||
Draws one to multiple triangles on the map. | Draws one to multiple triangles on the map. | ||
{{Feature | informative | When {{hl|fill}} param is absent or is an empty string "", the triangle is drawn with lines of the color set in {{hl|color}} param. | {{Feature | informative | When {{hl|fill}} param is absent or is an empty string "", the triangle is drawn with lines of the color set in {{hl|color}} param. | ||
Line 15: | Line 15: | ||
|p1= map: [[Control]] - map control | |p1= map: [[Control]] - map control | ||
|p2= vertices: [[Array]] of [[Position]]s - triangle(s) vertices in multiple of 3, see {{ | |p2= vertices: [[Array]] of [[Position]]s - triangle(s) vertices in multiple of 3, see {{Link|#Example 1}} - if [[Position#Introduction|Position3D]] is provided for a vertex, its z value is ignored | ||
|p3= color: [[Array]] in format [[Color|Color (RGBA)]] | |p3= color: [[Array]] in format [[Color|Color (RGBA)]] | ||
Line 23: | Line 23: | ||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
|x1= < | |x1= <sqf> | ||
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", | |||
{ | { | ||
_this | _this select 0 drawTriangle | ||
[ | [ | ||
[ | [ | ||
// triangle 1 start | |||
player getRelPos [100, 0], | |||
player getRelPos [100, -135], | |||
player getRelPos [100, 135] | |||
// triangle 1 end | |||
], | ], | ||
[1,0,0,0.5], | [1,0,0,0.5], | ||
"#(rgb,1,1,1)color(1,1,1,1)" | "#(rgb,1,1,1)color(1,1,1,1)" | ||
]; | ]; | ||
}];</ | }]; | ||
</sqf> | |||
|seealso= [[drawArrow]] [[drawEllipse]] [[drawIcon]] [[drawLine]] [[drawPolygon]] [[drawRectangle]] | |seealso= [[drawArrow]] [[drawEllipse]] [[drawIcon]] [[drawLine]] [[drawPolygon]] [[drawRectangle]] | ||
Line 45: | Line 47: | ||
|user= Killzone_Kid | |user= Killzone_Kid | ||
|timestamp= 20170716153600 | |timestamp= 20170716153600 | ||
|text= Example [https://www.youtube.com/watch?v=gSiuLdUeq0M YouTube video] < | |text= Example [https://www.youtube.com/watch?v{{=}}gSiuLdUeq0M YouTube video] | ||
<spoiler> | |||
<sqf> | |||
ctrl = findDisplay 12 displayCtrl 51; | |||
_ctrl setVariable ["data", [1, "#(rgb,1,1,1)color(1,1,1,1)", 1000, position player, | _ctrl setVariable ["data", [1, "#(rgb,1,1,1)color(1,1,1,1)", 1000, position player, | ||
{ | { | ||
Line 75: | Line 80: | ||
_alpha = linearConversion [_dist, 0, _dist - _size, 1, 0]; | _alpha = linearConversion [_dist, 0, _dist - _size, 1, 0]; | ||
_map drawEllipse [_pos, _size * 2, _size * 2, 0, [0,0,1,_alpha], _fill]; | _map drawEllipse [_pos, _size * 2, _size * 2, 0, [0,0,1,_alpha], _fill]; | ||
_map drawTriangle [ | _map drawTriangle [[_pos getPos [_size, -_size], _size, _size] call _fn, [1,0,0,_alpha], _fill]; | ||
_map drawTriangle [ | _map drawTriangle [[_pos getPos [_size, -_size + 120], _size, _size] call _fn, [0,1,0,_alpha], _fill]; | ||
_map drawTriangle [ | _map drawTriangle [[_pos getPos [_size, -_size - 120], _size, _size] call _fn, [1,1,0,_alpha], _fill]; | ||
}]; | }]; | ||
openMap true;</ | openMap true; | ||
</sqf> | |||
</spoiler> | |||
}} | }} | ||
Line 86: | Line 93: | ||
|user= Killzone_Kid | |user= Killzone_Kid | ||
|timestamp= 20181113210500 | |timestamp= 20181113210500 | ||
|text= Drawing holes ( | |text= Drawing holes ({{Link|https://www.youtube.com/watch?v{{=}}XZRtXsBFLAg|video}}): | ||
<spoiler> | |||
<sqf> | |||
t = time; | |||
i = 0; | i = 0; | ||
tex = "#(rgb,1,1,1)color(1,1,1,0.5)"; | tex = "#(rgb,1,1,1)color(1,1,1,0.5)"; | ||
Line 138: | Line 148: | ||
openMap true; | openMap true; | ||
mapAnimAdd [0, 0.15, [500,500,0]]; | mapAnimAdd [0, 0.15, [500,500,0]]; | ||
mapAnimCommit;</ | mapAnimCommit; | ||
</sqf> | |||
</spoiler> | |||
}} | }} |
Revision as of 23:09, 20 November 2023
Description
- Description:
-
Draws one to multiple triangles on the map.
- Groups:
- GUI Control - Map
Syntax
- Syntax:
- map drawTriangle [vertices, color, fill]
- Parameters:
- map: Control - map control
- vertices: Array of Positions - triangle(s) vertices in multiple of 3, see Example 1 - if Position3D is provided for a vertex, its z value is ignored
- color: Array in format Color (RGBA)
- fill: String - (Optional, default "") fill texture file or Procedural Textures. See note in description for more info.
- Return Value:
- Nothing
Examples
- Example 1:
- findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { _this select 0 drawTriangle [ [ // triangle 1 start player getRelPos [100, 0], player getRelPos [100, -135], player getRelPos [100, 135] // triangle 1 end ], [1,0,0,0.5], "#(rgb,1,1,1)color(1,1,1,1)" ]; }];
Additional Information
- See also:
- drawArrow drawEllipse drawIcon drawLine drawPolygon drawRectangle
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 Jul 16, 2017 - 15:36 (UTC)
-
Example YouTube video
↑ Back to spoiler's topctrl = findDisplay 12 displayCtrl 51; _ctrl setVariable ["data", [1, "#(rgb,1,1,1)color(1,1,1,1)", 1000, position player, { params ["_p", "_r", "_a", "_sr", "_ba"]; _sr = _r * 0.382; _pb = _p getPos [_sr, _a + 180]; [ _p getPos [_r, _a], _p getPos [_sr, _a + 36], _p getPos [_sr, _a - 36], _pb, _p getPos [_r, _a - 72], _p getPos [_r, _a + 72], _p getPos [_r, _a - 144], _p getPos [_sr, _a - 108], _pb, _p getPos [_r, _a + 144], _p getPos [_sr, _a + 108], _pb ] }]]; _ctrl ctrlRemoveAllEventHandlers "Draw"; _ctrl ctrlAddEventHandler ["Draw", { _map = _this select 0; _data = _map getVariable "data"; _data params ["_i", "_fill", "_dist", "_pos", "_fn"]; _data set [0, _i + 1]; _size = _i % _dist; if (_size == 0) then { _data set [0, 1]; _data set [1, ["#(rgb,1,1,1)color(1,1,1,1)", ""] select (random 1 < 0.3)]; _data set [2, 250 + round random 750]; }; _alpha = linearConversion [_dist, 0, _dist - _size, 1, 0]; _map drawEllipse [_pos, _size * 2, _size * 2, 0, [0,0,1,_alpha], _fill]; _map drawTriangle [[_pos getPos [_size, -_size], _size, _size] call _fn, [1,0,0,_alpha], _fill]; _map drawTriangle [[_pos getPos [_size, -_size + 120], _size, _size] call _fn, [0,1,0,_alpha], _fill]; _map drawTriangle [[_pos getPos [_size, -_size - 120], _size, _size] call _fn, [1,1,0,_alpha], _fill]; }]; openMap true;
- Posted on Nov 13, 2018 - 21:05 (UTC)
-
Drawing holes (video):
↑ Back to spoiler's topt = time; i = 0; tex = "#(rgb,1,1,1)color(1,1,1,0.5)"; col = [1,1,1,1]; findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { if (time > t) then { col = [random 1, random 1, random 1, 1]; tex = [ "\A3\ui_f\data\map\markerbrushes\vertical_ca.paa", "\A3\ui_f\data\map\markerbrushes\bdiagonal_ca.paa", "\A3\ui_f\data\map\markerbrushes\cross_ca.paa", "\A3\ui_f\data\map\markerbrushes\diaggrid_ca.paa", "\A3\ui_f\data\map\markerbrushes\fdiagonal_ca.paa", "\A3\ui_f\data\map\markerbrushes\grid_ca.paa", "\A3\ui_f\data\map\markerbrushes\horizontal_ca.paa", "#(rgb,1,1,1)color(1,1,1,0.5)" ] select (i % 8); t = time + 0.5; i = i + 1; }; _this select 0 drawTriangle [ [ [0,0],[100,500],[400,400], [0,0],[400,400],[500,100], [0,0],[500,100],[1000,0], [1000,0],[500,100],[600,400], [1000,0],[600,400],[900,500], [1000,0],[900,500],[1000,1000], [1000,1000],[900,500],[600,600], [1000,1000],[600,600],[500,900], [1000,1000],[500,900],[0,1000], [0,1000],[500,900],[400,600], [0,1000],[400,600],[100,500], [0,1000],[100,500],[0,0] ], col, tex ]; _this select 0 drawPolygon [[[0,0,0],[0,1000,0],[1000,1000,0],[1000,0,0]], col]; _this select 0 drawPolygon [[[100,500,0],[400,600,0],[500,900,0],[600,600,0],[900,500,0],[600,400,0],[500,100,0],[400,400,0]], col]; }]; openMap true; mapAnimAdd [0, 0.15, [500,500,0]]; mapAnimCommit;