screenToWorld: Difference between revisions
(add. ArmA2 classification) |
m (updated formatting) |
||
| (56 intermediate revisions by 11 users not shown) | |||
| Line 1: | Line 1: | ||
{{RV|type=command | |||
[[ | |game1= arma2 | ||
|version1= 1.00 | |||
|game2= arma2oa | |||
|version2= 1.50 | |||
|game3= tkoh | |||
|version3= 1.00 | |||
|game4= arma3 | |||
|version4= 0.50 | |||
|gr1= Positions | |||
|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 is similar to doing: | |||
<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 does not go beyond 2 * view distance | |||
ASLToAGL terrainIntersectAtASL [_p1, _p2] | |||
</sqf> | |||
}} | |||
|s1= [[screenToWorld]] screen | |||
|p1= screen: [[Array]] with [x, y] - screen position, see [[SafeZone]] for more information | |||
* x: [[Number]] | |||
* y: [[Number]] | |||
|r1= [[Position#PositionAGL|PositionAGL]], world position on surface [x, y, 0] | |||
|s2= camera [[screenToWorld]] position | |||
|s2since= arma3 2.18 | |||
|p21= camera: [[Object]] - camera object | |||
|p22= screen: [[Array]] with [x, y] - screen position, see [[SafeZone]] for more information | |||
* x: [[Number]] | |||
* y: [[Number]] | |||
|r2= [[Position#PositionAGL|PositionAGL]], world position on surface [x,y,0] | |||
|x1= <sqf>private _wPos = screenToWorld [0.5, 0.5];</sqf> | |||
|x2= <sqf>private _wPos = _myCamera screenToWorld [0.5, 0.5]; // since {{arma3}} 2.18</sqf> | |||
|seealso= [[SafeZone]] [[worldToScreen]] [[screenToWorldDirection]] | |||
}} | |||
Latest revision as of 18:38, 5 January 2026
Description
- Description:
- Returns the position on landscape (PositionAGL) corresponding to the given point on screen (in UI coordinates).
- Groups:
- Positions
Syntax
- Syntax:
- screenToWorld screen
- Parameters:
- screen: Array with [x, y] - screen position, see SafeZone for more information
- Return Value:
- PositionAGL, world position on surface [x, y, 0]
Alternative Syntax
- Syntax:
- camera screenToWorld position
- Parameters:
- camera: Object - camera object
- screen: Array with [x, y] - screen position, see SafeZone for more information
- Return Value:
- PositionAGL, world position on surface [x,y,0]
Examples
- Example 1:
- Example 2:
Additional Information
- See also:
- SafeZone worldToScreen screenToWorldDirection
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord.
Only post proven facts here! Add Note