You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

569 lines
15 KiB

5 months ago
0.11.0
====
Added:
----
- mlib.vec2 component
To-Do:
----
- Update README.md
- Update spec.lua
- Fix tabbing
0.10.1
====
Added:
----
- Point category
- point.rotate
- point.scale
- point.polarToCartesian
- point.cartesianToPolar
Changed:
----
- math.getPercent now returns decimals (instead of percentages) since those are more common to use.
To-Do:
----
- Determine if isCompletelyInsideFunctions should return true with tangents.
- Check argument order for logicality and consistency.
- Add error checking.
- Make sure to see if any aliases were missed. (e.g. isSegmentInside)
- Clean up and correct README (add "Home" link, etc.)
0.10.0
====
Added:
----
Changed:
----
- mlib.line.segment is now mlib.segment.
- mlib.line.getIntercept has been renamed to mlib.line.getYIntercept
- mlib.line.getYIntercept now returns the x-coordinate for vertical lines instead of false.
- mlib.line.getYIntercept now returns the value `isVertical` as the second return value.
- mlib.line.getPerpendicularBisector is now mlib.segment.getPerpendicularBisector.
Fixed:
----
- mlib.line.getIntersection now should handle vertical slopes better.
- mlib.line.getClosestPoint now uses local function checkFuzzy for checking horizontal lines.
- Fixed possible bug in mlib.line.getSegmentIntersection and vertical lines.
- mlib.segment.getIntersection now uses fuzzy checking for parallel lines.
- mlib.math.round is now much more efficient.
- Removed some useless code from mlib.polygon.isSegmentInside.
To-Do:
----
- Determine if isCompletelyInsideFunctions should return true with tangents.
- Check argument order for logicality and consistency.
- Improve speed.
- Add error checking.
- Make sure to see if any aliases were missed. (e.g. isSegmentInside)
- Implement mlib.shapes again(?)
- Clean up and correct README (add "Home" link, etc.)
0.9.4
====
Added:
----
Changed:
----
- mlib.line.getDistance is now slightly faster.
- Made code much easier to debug by using new utility `cycle`.
- Added new utility.
- Various other minor changes.
Removed:
----
- Unused local utility function copy
To-Do
----
- Determine if isCompletelyInsideFunctions should return true with tangents.
- Make argument order more logical.
- Improve speed and error checking.
- Make sure to see if any aliases were missed. (e.g. isSegmentInside)
- Implement mlib.shapes again(?)
- Clean up README (add "Home" link, etc.)
0.9.3
====
Added:
----
- milb.circle.isCircleCompletelyInside
- mlib.circle.isPolygonCompletelyInside
- milb.circle.isSegmentCompletelyInside
- mlib.polygon.isCircleCompletelyInside
- mlib.polygon.isPolygonCompletelyInside
- mlib.polygon.isSegmentCompletelyInside
- ALIASES -
- mlib.circle.getPolygonIntersection
- mlib.circle.isCircleInsidePolygon
- mlib.circle.isCircleCompletelyInsidePolygon
- milb.line.getCircleIntersection
- milb.line.getPolygonIntersection
- milb.line.getLineIntersection
- mlib.line.segment.getCircleIntersection
- mlib.line.segment.getPolygonIntersection
- mlib.line.segment.getLineIntersection
- mlib.line.segment.getSegmentIntersection
- mlib.line.segment.isSegmentCompletelyInsideCircle
- mlib.line.segment.isSegmentCompletelyInsidePolygon
- mlib.polygon.isCircleCompletelyOver
Changed:
----
- mlib.circle.getCircleIntersection now returns 'inside' instead of 'intersection' if the point has not intersections but is within the circle.
- Fixed problem involving mlib.circle.getSegmentIntersection
- README.md now has more information on how to run specs and other minor improvements.
- Fixed some commenting on explanation of derivation of mlib.line.getIntersection.
- Updated the example to use the current version of mlib.
- Made/Changed some comments in the example main.lua.
Removed:
----
To-Do
----
- Make examples file on github (examples/shapes/main.lua, etc.) not just one line.
- Determine if isCompletelyInsideFunctions should return true with tangents.
- Make argument order more logical.
- Make sure to see if any aliases were missed. (e.g. isSegmentInside)
- Update spec links in README
0.9.2
====
Added:
----
Changed:
----
- mlib.polygon.getPolygonIntersection now does not create duplicate local table.
- mlib.line.getPerpendicularSlope now does not create a global variable.
- mlib.math.getSummation now allows the error to go through instead of returning false if the stop value is not a number.
- Changed any instance of the term "userdata" with "input"
Removed:
----
0.9.1
====
Added:
----
- Added mlib.statistics.getCentralTendency
- Added mlib.statistics.getDispersion
- Added mlib.statistics.getStandardDeviation
- Added mlib.statistics.getVariation
- Added mlib.statistics.getVariationRatio
Removed:
----
Changed:
----
- FIX: mlib.polygon.checkPoint now handles vertices better.
To-Do
----
- Add more functions.
0.9.0
====
Added:
----
- mlib.line.getDistance as an alias for mlib.line.getLength.
- mlib.line.checkPoint
- Internal documentation.
Removed:
----
- mlib.circle.isPointInCircle is replaced with mlib.circle.checkPoint
- mlib.circle.checkPoint is replaced with mlib.circle.isPointOnCircle
- Variation of mlib.circle.getLineIntersection( cx, cy, radius, slope, intercept ) is no longer supported, as it can cause errors with vertical lines.
Changed:
----
- CHANGE: mlib.line.getIntersection now returns true for colinear lines.
- CHANGE: mlib.line.getIntersection now returns true if the line are collinear.
- CHANGE: mlib.line.getIntersection now returns true if vertical lines are collinear.
- CHANGE: mlib.line.getSegmentIntersection now returns true if the line and segment are collinear.
- CHANGE: Changed the order of mlib.line.segment.checkPoint arguments.
- NAME: mlib.polygon.lineIntersects is now mlib.polygon.getLineIntersection
- NAME: mlib.polygon.lineSegmentIntersects is now mlib.polygon.getSegmentIntersection
- NAME: mlib.polygon.isLineSegmentInside is now mlib.polygon.isSegmentInside
- NAME: mlib.polygon.polygonIntersects is now mlib.polygon.getPolygonIntersection
- CHANGED: mlib.circle.checkPoint now takes arguments ( px, py, cx, cy, radius ).
- CHANGED: mlib.circle.isPointOnCircle now takes arguments ( px, py, cx, cy, radius ).
- NAME: mlib.polygon.circleIntersects is now mlib.polygon.getCircleIntersection
- NAME: mlib.circle.isLineSecant is now mlib.circle.getLineIntersection
- NAME: mlib.circle.isSegmentSecant is now mlib.circle.getSegmentIntersection
- NAME: mlib.circle.circlesIntersects is now mlib.circle.getCircleIntersection
- CHANGE: Added types 'tangent' and 'intersection' to mlib.circle.getCircleIntersection.
- NAME: mlib.math.getRootsOfQuadratic is now mlib.math.getQuadraticRoots
- CHANGE: mlib.math.getRoot now only returns the positive, since it there is not always negatives.
- NAME: mlib.math.getPercent is now mlib.math.getPercentage
- Cleaned up code (added comments, spaced lines, etc.)
- Made syntax that uses camelCase instead of CamelCase.
- Match style of more programmers.
- Easier to type.
- Moved to semantic numbering.
- Made any returns strings lower-case.
- Updated specs for missing functions.
To-Do
----
- Update readme.
- Add mlib.statistics.getStandardDeviation
- Add mlib.statistics.getMeasuresOfCentralTendency
- Add mlib.statistics.getMeasuresOfDispersion
1.1.0.2
====
Added:
----
- MLib.Polygon.IsPolygonInside
Removed:
----
- Removed all MLib.Shape:
- Was very slow.
- Could not define custom callbacks.
- Allow for flexibility.
Changed:
----
- Switched MLib.Line.GetIntersection back to the old way
- MLib.Line.GetSegmentIntersection now returns 4 values if the lines are parallel.
TODO:
- Make it so that MLib.Shape objects can use ':' syntax for other functions (i.e. MLib.Line.GetLength for Line objects, etc.)
- Intuitive error messages.
1.1.0.1
====
Added:
----
Removed:
----
Changed:
- MLib.Line.GetIntersection now returns true, instead of two points.
----
Fixed:
----
- MLib.Line.GetIntersection now handles vertical lines: returns true if they collide, false otherwise.
- MLib.Polygon.LineIntersects now also handles verticals.
TODO:
- Fix
- MLib.Shape Table can't have metatables.
1.1.0.0
====
Added:
----
- MLib.Polygon.IsCircleInside
- MLib.Polygon.LineSegmentIntersects
- MLib.Polygon.IsLineSegmentInside
- MLib.Statistics.GetFrequency
- MLib.Math.Factorial
- MLib.Math.SystemOfEquations
Removed:
----
Changed:
----
- MLib.Polygon.LineIntersects is now MLib.Polygon.LineSegmentIntersects.
- Put Word-wrap on Changes.txt
Fixed:
----
- Problems with numberous MLib.Polygon and MLib.Circle problems.
TODO:
- Fix
- MLib.Shape Table can't have metatables.
1.0.0.3
====
Added:
----
Removed:
----
Changed:
----
Fixed:
----
- README.md
TODO:
- Add:
- Frequency
- Binomial Probability
- Standard Deviation
- Conditional Probability
1.0.0.2
====
Added:
----
Removed:
----
- Ability to use a direction for Math.GetAngle's 5th argument instead of having a third point. See Fixed for more.
Changed:
----
- Changed README.md for clarity and consistency.
- Updated spec.lua
- See Fixed for more.
Fixed:
----
- Circle.IsSegmentSecant now properly accounts for chords actually being chords, and not secants.
- Circle.CircleIntersects now can return 'Colinear' or 'Equal' if the circles have same x and y but different radii (Colinear) or are exactly the same (Equal).
- Statistics.GetMode now returns a table with the modes, and the second argument as the number of times they appear.
- Math.GetRoot now returns the negative number as a second argument.
- Math.GetPercentOfChange now works for 0 to 0 (previously false).
- Math.GetAngle now takes only three points and no direction option.
- Typos in Shape.CheckCollisions and Shape.Remove.
- Fixed nil problems in Shape.CheckCollisions.
- Improved readablility and DRYness of Shape.CheckCollisions.
- Bugs in Shape.Remove and Shape.CheckCollisions regarding passing tables as arguments.
TODO:
- Add:
- Frequency
- Binomial Probability
- Standard Deviation
- Conditional Probability
1.0.0.1
====
Added:
----
Removed:
----
Changed:
----
- Changes.txt now expanded to include short excertps from all previous commits.
- Changed release number from 3.0.0 to 1.0.0.1
- Math.Round now can round to decimal places as the second argument.
- Commented unnecessary call of Segment.CheckPoint in Polygon.LineIntersects.
- Polygon.LineIntersects now returns where the lines intersect.
- false if not intersection.
- A table with all of the intersections { { px, py } }
- Same with Polygon.PolygonIntersects, Polygon.CircleIntersects,
Fixed:
----
- Error with GetSlope being called incorrectly.
- README.md Line.GetPerpendicularSlope misdirection.
- Same with Line.GetPerpendicularBisector, Line.Segment.GetIntersection, Circle.IsLineSecant, Circle.IsSegmentSecant, Statistics.GetMean, Median, Mode, and Range, and Shape:Remove, and fixed the naming for Shape:CheckCollisions and Shape:Remove.
- Clarified README.md
- Made util SortWithReferences local.
- Errors caused by local functions.
TODO:
- Add:
- Frequency
- Binomial Probability
- Standard Deviation
- Conditional Probability
3.0.0
-----
ADDED:
- Added function GetSignedArea.
REMOVED:
- Removed drawing functions.
- Removed MLib.Line.Functions entirely.
CHANGED:
- Changed all the names to CamelCase.
- Changed module name to MLib.
- Changed return order of GetPerpendicualrBisector from Slope, Midpoint to Midpoint, Slope.
- Changed returned string of MLib.circle.isLineSecant to be upper-case.
- Changed IsPrime to accept only one number at a time.
- Changed NewShape's type to Capitals.
Related to code:
- Added more accuarate comments.
- Made code more DRY.
- Made code monkey-patchable and saved space (by declaring all functions as local values then inserted them into a large table.
TODO:
- Make LineIntersectsPolygon return where intersection occurs.
- Ditto with PolygonIntersectsPolygon.
- Add:
- Frequency
- Binomial Probability
- Standard Deviation
- Conditional Probability
Not as accurately maintained before 2.0.2
-----------------------------------------
2.0.2
-----
- Cleaned up code, mostly.
2.0.1
-----
- Bug fixes, mlib.shape:remove & demos added.
2.0.0
-----
- Added mlib.shape and various bug fixes.
2.0.0
-----
- Made mlib.shape and made numberous bug fixes.
1.9.4
-----
- Made mlib.math.prime faster and removed ability to test multiple numbers at once. Thanks Robin!
1.9.3
-----
- Fixed polygon.area and polygon.centroid
1.9.2
-----
- Updated to LOVE 0.9.0.
1.9.1
-----
- Made mlib.line.closestPoint able to take either two points on the slope or the slope and intercept.
1.9.0
-----
- Added mlib.lineSegmentIntersects (no affiliation with previous one (changed to mlib.line.segment.intersect)) and mlib.line.closestPoint
1.8.3
-----
- Changed naming mechanism to be more organized.
1.8.2
-----
- "Fixed" mlib.lineSegmentsIntersect AGAIN!!!! :x
1.8.1
-----
- Removed a print statement.
1.8.0
-----
- mlib.pointInPolygon added
1.7.5
-----
- mlib.lineSegmentsIntersect vertical lines fixed again. This time for real. I promise... or hope, at least... :P
1.7.4
-----
- mlib.lineSegmentsIntersect vertical parallels fixed
1.7.3
-----
- mlib.lineSegmentsIntersect parallels fixed
1.7.2
-----
- mlib.lineSegmentsIntersect now handles vertical lines
1.7.1
-----
- mlib.lineSegmentsIntersect now returns the two places in between where the line segments begin to intersect.
1.7.0
-----
- Added mlib.circlesIntersect, mlib.pointOnLineSegment, mlib.linesIntersect, and mlib.lineSegmentsIntersect
1.6.1
-----
- Employed usage of summations for mlib.getPolygonArea and mlib.getPolygonCentroid and removed area as an argument for mlib.getPolygonCentroid.
1.6.0
-----
- Added several functions.
1.5.0
-----
- Made lots of changes to syntax to make it easier to use (hopefully). I also put out specs.
1.4.1
-----
- Localized mlib. Thanks, Yonaba!
1.4.0
-----
- Added mlib.getPolygonCentroid (gets the midpoint of a non-self-intersecting polygons)
1.3.2
-----
- Made mlib.getPrime take tables as arguments, so you can check all the values of a table.
1.3.1
-----
- Changed name method to mlib.getPolygonArea
1.3.0
-----
- Added mlib.get_polygon_area and removed mlib.get_convex_area and mlib.get_triangle_area since they are repetitive.
1.2.2
-----
- Made functions return faster, functions that previously returned tables now return multiple arguments.
1.2.1
-----
- Localized functions, made tables acceptable as arguments, refined function speed, mlib.get_mode now returns number most repeated as well as how many times.
1.2.0
-----
- Added mlib.get_angle
1.1.0
-----
- Added mlib.get_convex_area
1.0.4
-----
- Fixed get_mode to handle bimodials.
1.0.3
-----
- Prime Checker optimized (hopefully final update on this.)
1.0.2
-----
- Prime checker now works! (At least to 1000. I haven't tested any
further)
1.0.1
-----
- 'Fixed' the prime checker
1.0.0
-----
- Initial release