Module moonMath
Remove multiple occurrences of pairs { {x, y}, {x, y} }.
Functions
addPoint (t, x, y) | Adds a point to a table. |
removeDuplicatePointsFlat (t) | Remove duplicates from a flat table. |
validateNumber (n) | checks if a number is valid |
getGreatestPoint (points, offset) | Gets the greatest/least points with an offset |
isWithinBounds (min, n, max) | Checks if a number is within given bounds |
distance2 (x1, y1, x2, y2) | calculates the distance between two points |
getQuadraticRoots (a, b, c, table) | Math gets the quadratic roots of an equation |
rotatePoint (x, y, rot, ox, oy) | Rotate a point [tested] |
scalePoint (x, y, scale, ox, oy) | scales a point [tested] |
polarToCartesian (radius, theta, offsetRadius, offsetTheta) | From polar to cartesian [tested] |
cartesianToPolar (x, y, ox, oy) | From cartesian to polar [tested] |
getLength (x1, y1, x2, y2) | Gets the leght of a line |
getMidPoint (x1, y1, x2, y2) | gets the midpoint of a line |
getSlope (x1, y1, x2, y2) | gets the slope of a line |
getPerpendicularSlope (input) | gives the perpendicular slope of a line |
getYIntercept (x, y, ...) | gets the y-intercept of a line |
getLineLineIntersection (...) | gets the intersection of two lines |
getClosestPoint (...) | gets the closest point on a line to a point |
getLineSegmentIntersection (...) | gets the intersection of a line and a line segment |
checkLinePoint (x, y, x1, y1, x2, y2) | checks if a point is on a line |
getCircleLineIntersection (circleX, circleY, radius, x1, y1, x2, y2) | gets the intersection of a line and a circle |
getPolygonLineIntersection (x1, y1, x2, y2, ...) | checks whether or not a line intersects a polygon |
getPerpendicularBisector (x1, y1, x2, y2) | gets the perpendicular bisector of a line (https://www.youtube.com/watch?v=A86COO8KC58) |
checkSegmentPoint (px, py, x1, y1, x2, y2) | checks hether or not a point lies on a line segment |
addPoints (t, x, y) | adds point to a table |
getSegmentSegmentIntersection (x1, y1, x2, y2, x3, y3, x4, y4) | gets the point of intersection between two line segments |
isPointOnCircle (x, y, circleX, circleY, radius) | checks if a point is on a circle |
checkCirclePoint (x, y, circleX, circleY, radius) | checks if a point is within the radius of a circle |
getCircleSegmentIntersection (circleX, circleY, radius, x1, y1, x2, y2) | gets the type of intersection of a line segment |
getPolygonSegmentIntersection (x1, y1, x2, y2, ...) | checks if the line segment intersects the polygon |
isSegmentCompletelyInsideCircle (circleX, circleY, circleRadius, x1, y1, x2, y2) | checks if a line-segment is entirely within a circle |
checkPolygonPoint (px, py, ...) | checks if the point lies inside the polygon not on the polygon |
isSegmentCompletelyInsidePolygon (x1, y1, x2, y2, ...) | checks if a segment is completely inside a polygon |
getLineSegmentIntersection (...) | gets the intersection of a line and a line segment |
Functions
- addPoint (t, x, y)
-
Adds a point to a table.
Parameters:
- t table
- x number
- y number
Returns:
-
table
t
- removeDuplicatePointsFlat (t)
-
Remove duplicates from a flat table.
Parameters:
- t table
Returns:
-
table
newt
Byg Fixed see issue : https://github.com/davisdude/mlib/issues/17
- validateNumber (n)
-
checks if a number is valid
Parameters:
- n number
Returns:
-
bool
validity
- getGreatestPoint (points, offset)
-
Gets the greatest/least points with an offset
Parameters:
- points table
- offset number
Returns:
-
table
{greatest, least}
- isWithinBounds (min, n, max)
-
Checks if a number is within given bounds
Parameters:
- min number
- n number
- max number
Returns:
-
bool
- distance2 (x1, y1, x2, y2)
-
calculates the distance between two points
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
number
- getQuadraticRoots (a, b, c, table)
-
Math
gets the quadratic roots of an equation
Parameters:
- a number
- b number
- c number
- table number
- rotatePoint (x, y, rot, ox, oy)
-
Rotate a point [tested]
Parameters:
- x number
- y number
- rot number
- ox number
- oy number
Returns:
-
table
{x, y}
- scalePoint (x, y, scale, ox, oy)
-
scales a point [tested]
Parameters:
- x number
- y number
- scale number
- ox number
- oy number
Returns:
-
table
{x, y}
- polarToCartesian (radius, theta, offsetRadius, offsetTheta)
-
From polar to cartesian [tested]
Parameters:
- radius number
- theta number
- offsetRadius number
- offsetTheta number
Returns:
-
table
{x, y}
- cartesianToPolar (x, y, ox, oy)
-
From cartesian to polar [tested]
Parameters:
- x number
- y number
- ox number
- oy number
Returns:
-
table
{radius, theta}
- getLength (x1, y1, x2, y2)
-
Gets the leght of a line
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
number
- getMidPoint (x1, y1, x2, y2)
-
gets the midpoint of a line
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
number
- getSlope (x1, y1, x2, y2)
-
gets the slope of a line
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
number
- getPerpendicularSlope (input)
-
gives the perpendicular slope of a line
Parameters:
- input table {x1, y1, x2, y2} or slope
Returns:
-
slope
- getYIntercept (x, y, ...)
-
gets the y-intercept of a line
Parameters:
- x number
- y number
- ... table {x2, y2} or slope
Returns:
-
table
{number, bool}
- getLineLineIntersection (...)
-
gets the intersection of two lines
Parameters:
- ... table {slope1, slope2, x1, y1, x2, y2} or {slope1, intercept1, slope2, intercept2} or {x1, y1, x2, y2, x3, y3, x4, y4}
Returns:
-
table
{x, y}
- getClosestPoint (...)
-
gets the closest point on a line to a point
Parameters:
- ... table {perpendicularX, perpendicularY, x1, y1, x2, y2} or {perpendicularX, perpendicularY, slope, intercept}
Returns:
-
table
{x, y}
- getLineSegmentIntersection (...)
-
gets the intersection of a line and a line segment
Parameters:
- ... table {x1, y1, x2, y2, x3, y3, x4, y4} or {x1, y1, x2, y2, slope, intercept}
Returns:
-
table
{x, y}
- checkLinePoint (x, y, x1, y1, x2, y2)
-
checks if a point is on a line
Parameters:
- x number
- y number
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
bool
- getCircleLineIntersection (circleX, circleY, radius, x1, y1, x2, y2)
-
gets the intersection of a line and a circle
Parameters:
- circleX number
- circleY number
- radius number
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
table
{ ratio, ... }
- getPolygonLineIntersection (x1, y1, x2, y2, ...)
-
checks whether or not a line intersects a polygon
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
- ... number
Returns:
-
bool
- getPerpendicularBisector (x1, y1, x2, y2)
-
gets the perpendicular bisector of a line (https://www.youtube.com/watch?v=A86COO8KC58)
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
midx,
midy, perpendicularSlope
- checkSegmentPoint (px, py, x1, y1, x2, y2)
-
checks hether or not a point lies on a line segment
Parameters:
- px number
- py number
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
bool
- addPoints (t, x, y)
-
adds point to a table
Parameters:
- t table
- x number
- y number
- getSegmentSegmentIntersection (x1, y1, x2, y2, x3, y3, x4, y4)
-
gets the point of intersection between two line segments
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
- x3 number
- y3 number
- x4 number
- y4 number
Returns:
-
bool
- isPointOnCircle (x, y, circleX, circleY, radius)
-
checks if a point is on a circle
Parameters:
- x number
- y number
- circleX number
- circleY number
- radius number
Returns:
-
bool
- checkCirclePoint (x, y, circleX, circleY, radius)
-
checks if a point is within the radius of a circle
Parameters:
- x number
- y number
- circleX number
- circleY number
- radius number
Returns:
-
bool
- getCircleSegmentIntersection (circleX, circleY, radius, x1, y1, x2, y2)
-
gets the type of intersection of a line segment
Parameters:
- circleX number
- circleY number
- radius number
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
table
{circularSeg, ...}
- getPolygonSegmentIntersection (x1, y1, x2, y2, ...)
-
checks if the line segment intersects the polygon
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
- ... number
Returns:
-
bool
- isSegmentCompletelyInsideCircle (circleX, circleY, circleRadius, x1, y1, x2, y2)
-
checks if a line-segment is entirely within a circle
Parameters:
- circleX number
- circleY number
- circleRadius number
- x1 number
- y1 number
- x2 number
- y2 number
Returns:
-
bool
- checkPolygonPoint (px, py, ...)
-
checks if the point lies inside the polygon not on the polygon
Parameters:
- px number
- py number
- ... number
Returns:
-
bool
- isSegmentCompletelyInsidePolygon (x1, y1, x2, y2, ...)
-
checks if a segment is completely inside a polygon
Parameters:
- x1 number
- y1 number
- x2 number
- y2 number
- ... table
Returns:
-
bool
- getLineSegmentIntersection (...)
-
gets the intersection of a line and a line segment
Parameters:
- ... table {x1, y1, x2, y2, x3, y3, x4, y4} or {x1, y1, x2, y2, slope, intercept}
Returns:
-
table
{x, y}