getDistanceToXY: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
(Updated for b55 changes and created examples for the function, added see also)
m (Text replacement - "<source" to "<syntaxhighlight")
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{stub}}
{{MacroFunction
{{MacroFunction
|name=getDistanceToXY
|name=getDistanceToXY
Line 7: Line 6:


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
getDistanceToXY(x, y)
getDistanceToXY(x, y)
</source>
<source lang="mtmacro" line>
getDistanceToXY(x, y, units)
getDistanceToXY(x, y, units)
</source>
<source lang="mtmacro" line>
getDistanceToXY(x, y, units, source)
getDistanceToXY(x, y, units, source)
</source>
<source lang="mtmacro" line>
getDistanceToXY(x, y, units, source, metric)
getDistanceToXY(x, y, units, source, metric)
</source>
getDistanceToXY(x, y, units, source, metric, pixels)
</syntaxhighlight>
'''Parameters'''
'''Parameters'''
* {{code|x}} - The X coordinate of the target grid cell.
{{param|x|The X coordinate of the target grid cell.}}
* {{code|y}} - The Y coordinate of the target grid cell.
{{param|y|The Y coordinate of the target grid cell.}}
* {{code|units}} - If set to {{code|false}}({{code|0}}) the distance is returned in cells. Default is returning Distance Per Cell units.
{{param|units|If set to {{false}}, the distance is returned in cells. Default is returning Distance Per Cell units.}}
* {{code|source}} - The id of the token to measure the distance from. Default is the current token.
{{param|source|The id of the token to measure the distance from. Default is the current token.}}
* {{param|metric|The movement metric to use which defaults to the movement metric in the users preferences, the metric can be one of the following strings}}
{{param|metric|The movement metric to use which defaults to the movement metric in the users preferences, the metric can be one of the following strings}}
** {{code|NO_GRID}} - The grid is ignored and straight line distance between the tokens is returned.
** {{code|NO_GRID}} - The grid is ignored and straight line distance between the center of the token and the center of the cell is returned.
** {{code|ONE_TWO_ONE}} - First Diagonal movement costs 1, second 2, and so on (Square grid only).
** {{code|ONE_TWO_ONE}} - First Diagonal movement costs 1, second 2, and so on (Square grid only).
** {{code|ONE_ONE_ONE}} - Diagonal movement costs a single square (Square grid only).
** {{code|ONE_ONE_ONE}} - Diagonal movement costs a single square (Square grid only).
** {{code|MANHATTAN}} - Diagonal movement costs 2 (Square grid only).
** {{code|MANHATTAN}} - Diagonal movement costs 2 (Square grid only).
** {{code|NO_DIAGONALS}} - No diagonal movement is allowed (Square grid only).
** {{code|NO_DIAGONALS}} - No diagonal movement is allowed (Square grid only).
{{param|pixel|If set to {{true}}, the X and Y refer to pixels. If set to {{false}}, they refer to a cell. Default to {{false}}.}}


|example=
|example=
To get the distance from the current token to 10,10.
To get the distance from the current token to 10,10.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: dist = getDistanceToXY(10, 10)]
[h: dist = getDistanceToXY(10, 10)]
</source>
</syntaxhighlight>


To get the distance between the ''Altar'' and 10, 10 in the number of squares or hexes.
To get the distance between the ''Altar'' and 10, 10 in the number of squares or hexes.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: dist = getDistance(10, 10, 0, "Altar")]
[h: dist = getDistanceToXY(10, 10, 0, "Altar")]
</source>
</syntaxhighlight>


To get the distance between the ''Altar'' and 10, 10 in ''map distance'' units.
To get the distance between the ''Altar'' and 10, 10 in ''map distance'' units.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: dist = getDistance(10, 10, 1, "Altar")]
[h: dist = getDistanceToXY(10, 10, 1, "Altar")]
</source>
</syntaxhighlight>


To get the straight line distance between the ''Altar'' and 10, 10.
To get the straight line distance between the ''Altar'' and 10, 10.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: dist = getDistance(10, 10, 1, "Altar", "NO_GRID")]
[h: dist = getDistanceToXY(10, 10, 1, "Altar", "NO_GRID")]
</source>
</syntaxhighlight>


|also=
|also=
Line 56: Line 51:


|changes=
|changes=
{{code|b55}} - added the optional metric argument.
{{change|1.3b55|Added the optional {{code|metric}} argument.}}
}}
{{change|1.5.5|Added the {{code|pixel}} argument.}}
}}
}}
[[Category:Distance Function]]
[[Category:Distance Function]]

Latest revision as of 18:42, 14 March 2023

getDistanceToXY() Function

Introduced in version 1.3b51
Gets the distance to a target grid cell.

Usage

getDistanceToXY(x, y)
getDistanceToXY(x, y, units)
getDistanceToXY(x, y, units, source)
getDistanceToXY(x, y, units, source, metric)
getDistanceToXY(x, y, units, source, metric, pixels)

Parameters

  • x - The X coordinate of the target grid cell.
  • y - The Y coordinate of the target grid cell.
  • units - If set to false(0), the distance is returned in cells. Default is returning Distance Per Cell units.
  • source - The id of the token to measure the distance from. Default is the current token.
  • metric - The movement metric to use which defaults to the movement metric in the users preferences, the metric can be one of the following strings
    • NO_GRID - The grid is ignored and straight line distance between the center of the token and the center of the cell is returned.
    • ONE_TWO_ONE - First Diagonal movement costs 1, second 2, and so on (Square grid only).
    • ONE_ONE_ONE - Diagonal movement costs a single square (Square grid only).
    • MANHATTAN - Diagonal movement costs 2 (Square grid only).
    • NO_DIAGONALS - No diagonal movement is allowed (Square grid only).
  • pixel - If set to true(1), the X and Y refer to pixels. If set to false(0), they refer to a cell. Default to false(0).

Example

To get the distance from the current token to 10,10.
[h: dist = getDistanceToXY(10, 10)]

To get the distance between the Altar and 10, 10 in the number of squares or hexes.

[h: dist = getDistanceToXY(10, 10, 0, "Altar")]

To get the distance between the Altar and 10, 10 in map distance units.

[h: dist = getDistanceToXY(10, 10, 1, "Altar")]

To get the straight line distance between the Altar and 10, 10.

[h: dist = getDistanceToXY(10, 10, 1, "Altar", "NO_GRID")]

See Also

Version Changes

  • 1.3b55 - Added the optional metric argument.
  • 1.5.5 - Added the pixel argument.