几何图形,化繁为简。
Metron 是一个全面的几何函数和类型集合,扩展了 CoreGraphics 提供的 2D 几何基元。Metron 完全用 Swift 编写,让您能够用非常直观的语句表达复杂的几何计算
示例 1。
Circle(in: viewFrame).contains(touchPoint)
↳ 创建一个 Circle,使其居中并适配 viewFrame 内部,并检查 touchPoint 是否在该圆内。
示例 2。
(Angle(.pi) + Angle(270, unit: .degrees)).normalized // Angle of 0.5pi (90°)
↳ 添加两个 Angles,一个以弧度(默认)表示,另一个以度数表示。总和被归一化到 0 到 2𝛑 弧度(或 0 到 360 度)范围内。
示例 3。
LineSegment(a: startPoint, b: currentPoint).intersection(with: viewFrame.lineSegment(for: minYEdge))
↳ 创建一个从(触摸)起始点到当前点的 LineSegment,并返回与视图框架 minYEdge 的交点(如果这些线段确实相交)。
示例 4。
let rotatedPoints = viewFrame.points.map { $0.applying(rotationTransform, anchorPoint: rotationPoint) }
let path: CGPath = Polygon(points: rotatedPoints).path
↳ 将视图框架 (CGRect) 的每个角点映射到一个应用了 rotationTransform 的点,并将 rotationPoint 作为变换的锚点。使用这些点,初始化一个 Polygon,表示视图旋转后的矩形框架。从该多边形,我们导出一个 CGPath,然后可以绘制它。
CGPoint 的距离CGRectCGRect 中的相对位置CGRect 中的归一化位置CGVectorCGPoints 数组的凸包(返回 Polygon)CGPointCGAffineTransform 扩展CGSizeCGPathCGVector 创建平移变换Line 或 LineSegment 的交点LineLine 或 LineSegment 的交点CGPathCGPathCGPoint)LineSegment)Angle,请参见下文)LineSegment)LineSegment)CGPathCGPathCGRectCGPathCGRectEdges)AngleCocoaPods
pod "Metron"
Carthage
github "toineheuvelmans/Metron"
Swift Package Manager
dependencies: [
.Package(url: "https://github.com/toineheuvelmans/metron.git", majorVersion: 1)
]
Package.swift 的 dependencies 值中建议或反馈?
许可证