InPoly: Difference between revisions

From NPC for VCMP 0.4 Servers
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
params=<syntaxhighlight lang="lua">(px, py, x1, y1, x2, y2, ...)</syntaxhighlight>
params=<syntaxhighlight lang="lua">(px, py, x1, y1, x2, y2, ...)</syntaxhighlight>
<poem>::px, py: The coordinates of the point to be checked.
<poem>::px, py: The coordinates of the point to be checked.
::x1, y1: The coordinates of the first vertex of the polygon.
::x1, y1: The coordinates of the first vertex of the polygon as floating points.
::x2, y2: The coordinates of the second vertex of the polygon.
::x2, y2: The coordinates of the second vertex of the polygon as floating points.
::...: The coordinates of subsequent vertices of the polygon.</poem>|
::...: The coordinates of subsequent vertices of the polygon.
retvals=Returns `true` if the point is inside the polygon, otherwise returns `false`.|
::You need to provide atleast 3 vertices to this function.</poem>|
retvals=Returns true if the point is inside the polygon, otherwise returns false.|
example=[[File:InPoly.png|thumb|]]
example=[[File:InPoly.png|thumb|]]
<source lang="lua">
<source lang="lua">

Latest revision as of 07:54, 1 October 2024


Description:
Checks if a point is inside a polygon defined by multiple vertices.


Parameters:

(px, py, x1, y1, x2, y2, ...)

px, py: The coordinates of the point to be checked.
x1, y1: The coordinates of the first vertex of the polygon as floating points.
x2, y2: The coordinates of the second vertex of the polygon as floating points.
...: The coordinates of subsequent vertices of the polygon.
You need to provide atleast 3 vertices to this function.


Return Values:
Returns true if the point is inside the polygon, otherwise returns false.


Example

InPoly.png
local inside = InPoly(3, 4, 0, 0, 6, 0, 6, 6, 0, 6);
if(inside)
    print("The point (3,4) is inside the polygon.");
else
    print("The point (3,4) is outside the polygon.");