screenToWorld: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(see also)
No edit summary
 
(41 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma2 |= Game name
|game1= arma2
|version1= 1.00


|1.00|= Game version
|game2= arma2oa
____________________________________________________________________________________________
|version2= 1.50


| Returns the position on landscape (in world coordinates) corresponding to the given point on screen (in UI coordinates). |= Description
|game3= tkoh
____________________________________________________________________________________________
|version3= 1.00


| '''screenToWorld''' screen |= Syntax
|game4= arma3
|version4= 0.50


|p1= screen: [[Array]] - Screen position [x,y] (see [[SafeZone]] for more info) |= PARAMETER1
|gr1= Positions


|p2= |= PARAMETER2
|descr= Returns the position on landscape ([[Position#PositionAGL|PositionAGL]]) corresponding to the given point on screen (in UI coordinates).
 
{{Feature | informative | This command performs an intersection with the ground/water surface, from the camera position along the [[screenToWorldDirection]] vector up to {{hl|viewDistance}} for terrain intersection and {{hl|2 * viewDistance}} for water intersection. In other words, it's similar to doing:
|p3= |= PARAMETER3
<sqf>
private _p1 = AGLtoASL positionCameraToWorld [0,0,0];                  // camera position ASL
private _vector = screenToWorldDirection_screenPos;                      // "aim" vector
private _p2 = _p1 vectorAdd (_vector vectorMultiply viewDistance * 2); // the ray doesn't go beyond 2 * view distance
ASLtoAGL terrainIntersectAtASL [_p1, _p2]
</sqf>
}}


| [[Array]] - World position on surface [x,y,0] |= RETURNVALUE
|s1= [[screenToWorld]] screen


|p1= screen: [[Array]] - screen position [x,y] (see [[SafeZone]] for more info)


|x1= <code>_wPos = [[screenToWorld]] [0.5,0.5];</code> |= EXAMPLE1
|r1= [[Array]] - [[Position#PositionAGL|PositionAGL]], world position on surface [x,y,0]


____________________________________________________________________________________________
|s2= camera [[screenToWorld]] position


| [[SafeZone]], [[worldToScreen]] |= SEEALSO
|p21= camera: [[Object]] - camera object


| |= MPBEHAVIOUR
|p22= position: [[Array]] - screen position [x,y] (see [[SafeZone]] for more info)
____________________________________________________________________________________________
}}


<h3 style='display:none'>Notes</h3>
|r2= [[Array]] - [[Position#PositionAGL|PositionAGL]], world position on surface [x,y,0]
<dl class='command_description'>
<!-- Note Section BEGIN -->


<!-- Note Section END -->
|x1= <sqf>_wPos = screenToWorld [0.5, 0.5];</sqf>
</dl>


<h3 style='display:none'>Bottom Section</h3>
|seealso= [[SafeZone]] [[worldToScreen]] [[screenToWorldDirection]]
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
}}
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 11:38, 6 June 2024

Hover & click on the images for description

Description

Description:
Returns the position on landscape (PositionAGL) corresponding to the given point on screen (in UI coordinates).
This command performs an intersection with the ground/water surface, from the camera position along the screenToWorldDirection vector up to viewDistance for terrain intersection and 2 * viewDistance for water intersection. In other words, it's similar to doing:
private _p1 = AGLtoASL positionCameraToWorld [0,0,0]; // camera position ASL private _vector = screenToWorldDirection_screenPos; // "aim" vector private _p2 = _p1 vectorAdd (_vector vectorMultiply viewDistance * 2); // the ray doesn't go beyond 2 * view distance ASLtoAGL terrainIntersectAtASL [_p1, _p2]
Groups:
Positions

Syntax

Syntax:
screenToWorld screen
Parameters:
screen: Array - screen position [x,y] (see SafeZone for more info)
Return Value:
Array - PositionAGL, world position on surface [x,y,0]

Alternative Syntax

Syntax:
camera screenToWorld position
Parameters:
camera: Object - camera object
position: Array - screen position [x,y] (see SafeZone for more info)
Return Value:
Array - PositionAGL, world position on surface [x,y,0]

Examples

Example 1:
_wPos = screenToWorld [0.5, 0.5];

Additional Information

See also:
SafeZone worldToScreen screenToWorldDirection

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