geometry_kit 1.2.2
geometry_kit: ^1.2.2 copied to clipboard
A set of utils that help with geometry (line, circle, triangle, polygon, arc, ring, capsule, bezier, spline, ellipse, rectangle, ray).
1.2.2 #
- update git hub info
1.2.1 #
- fix:
Line— tightened NaN checks across slope/intercept calculations - refactor:
QuadrilateralandTriangle— clearer getter names for sides and special points - docs: expanded dartdoc on
Circle,Line,Point,Polygon,Quadrilateral,Ring,Triangle, andunits - chore: moved package into
geometry_kits_monomonorepo alongside newgeometry_kit_widgets
1.2.0 #
New Classes #
- feat: added
Rectangleclass with AABB constructors (fromPoints,fromCenter,square), containment, overlap detection, diagonal, corners,intersectsLine(),intersectsCircle() - feat: added
Ellipseclass with dual radii, area, perimeter (Ramanujan approximation), containment, eccentricity, foci - feat: added
Rayclass with origin/direction,pointAt, intersection withLineandCircle - feat: added
Arcclass with arc length, sector area, start/end/mid points, parametric sampling,fromDegreesfactory - feat: added
Quadrilateralclass with classification checks (isParallelogram,isRhombus,isTrapezoid,isKite,isRectangle,isSquare,isConvex), diagonals, center, containment - feat: added
Ringclass (annulus) withinnerRadius,outerRadius,width, circumferences, containment - feat: added
Capsuleclass (stadium shape) withmedialAxis,radius,boundingBox,endCaps,fromRect()andcircle()factories, containment - feat: added
Polylineclass (open path) withlength,segments,boundingBox, parametricpointAt(),simplify()(Ramer-Douglas-Peucker) - feat: added
Bezierclass (quadratic Bezier curve) with parametricpointAt(),split(),boundingBox,length - feat: added
Splineclass (Catmull-Rom) withsample(),tangentAt(),toPolyline(),approximateLength() - feat: added
Segmenttype alias forLine
New Methods on Existing Classes #
- feat:
Point— addedangleTo(),dot(),magnitude,normalized,midPointTo() - feat:
Line— addedisVertical,isHorizontal,isParallelTo(),isPerpendicularTo(),translate(),scale(),rotate() - feat:
Triangle— addedisScalene,centroid,circumcenter,incenter,contains() - feat:
Polygon— addedcentroid,isConvex,intersectsLine(),intersectsCircle(),regular()factory - feat:
Circle— addedcontains(),distanceTo(),intersectsLine(),intersectsCircle()
Bug Fixes #
- fix:
Point.translate()now correctly translates instead of doubling input (variable shadowing bug) - fix:
Circle.hasPoint()inverted logic — now correctly returnstruewhen point is inside; added type annotation - fix:
Circle.scale()now actually scales radius and center - fix:
Line.getIntersectPoint()checks both segment parameters, preventing false positives - fix:
Line.slopehandles vertical lines (returnsinfinityinstead of crashing) - fix:
Line.yInterceptreturnsNaNfor vertical lines instead of crashing - fix:
Line.xInterceptreturnsNaNfor horizontal lines instead of crashing - fix:
Line.hasPoint()uses epsilon-based comparison instead of exact float equality - fix:
Triangle.orthocenterrewritten with vector-based formula — no longer crashes on vertical/horizontal sides - fix:
Polygon.getInnerCentroid()corrected centroid formula using proper shoelace calculation - fix:
Polygon.areanow always returns positive value (.abs()applied) - fix:
AngleUtils.minOfArcToRadian()corrected formula (was multiplying instead of dividing) - fix: removed debug
print()left inTriangle.angles
Breaking Changes #
- refactor:
Shapesubclasses now useimplements Shapeinstead ofextends Shape - feat:
Polygontransform methods now returnPolygoninstead ofShape(covariant return types) - feat: exported
Shapeabstract class for consumers to extend
Maintenance #
- chore: deprecated
AngleUtilsin favor ofRad/Degextensions fromunits.dart - chore: removed unused
TransformationsMixindead code - chore: established angle convention — transforms take degrees,
Lineangle methods returnRad - test: comprehensive test suite covering all classes
1.1.0-dev #
- add
translate,scale,rotateto [Shape]
1.0.0-dev (breaking change) #
- rewrite package with new models
0.1.1 #
- Add angle utils.
- Line Utils
- add calculating angle between 2 lines
0.1.0 #
- Initial version.