Difference between revisions of "Math.inside"

From GiderosMobile
(added examples)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 5: Line 5:
 
=== Description ===
 
=== Description ===
 
Checks if a point is inside or outside a shape.
 
Checks if a point is inside or outside a shape.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
(number) = math.inside(point,shape)
 
(number) = math.inside(point,shape)
 
</source>
 
</source>
Line 24: Line 24:
  
 
=== Examples ===
 
=== Examples ===
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
print(math.inside({6, 0}, {x=0, y=0, radius=5})) -- 1
 
print(math.inside({6, 0}, {x=0, y=0, radius=5})) -- 1
 
print(math.inside({6, 0}, {x=0, y=0, radius=6})) -- 0
 
print(math.inside({6, 0}, {x=0, y=0, radius=6})) -- 0

Revision as of 14:28, 13 July 2023

Available since: Gideros 2020.9
Class: math

Description

Checks if a point is inside or outside a shape. <syntaxhighlight lang="lua"> (number) = math.inside(point,shape) </source>

Shapes are tables which can have the following forms:

  • { x, y, z, radius }: Represent a sphere (3D) or a circle (2D)
  • { x, y, z, normal }: Represent a plane (3D) or a line (2D)
  • { x, y, z, normal, extent }: Represent a disk (3D) or a segment (2D)
  • { x, y, x2, y2 }: Represent a segment (2D)
  • { x, y, z, 1, 2, ... }: Represent a shape group

Parameters

point: (table) the point to test
shape: (table) the shape to test against

Return values

Returns (number) a positive value if the point is outside, negative if inside, or 0 if on the edge

Examples

<syntaxhighlight lang="lua"> print(math.inside({6, 0}, {x=0, y=0, radius=5})) -- 1 print(math.inside({6, 0}, {x=0, y=0, radius=6})) -- 0 print(math.inside({6, 0}, {x=0, y=0, radius=7})) -- -1 </source>

See also

math.raycast