Build Status GitHub Release CocoaPods Release Carthage Compatible SwiftPM Compatible Supported Platforms

Metron

几何图形,化繁为简。

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

对于 CGVector

对于 CGSize

对于 CGRect

对于 CGRectEdge

对于 CGAffineTransform

新类型

直线

线段

三角形

正方形

多边形

角度

使用 Angle 创建旋转 CGAffineTransform

安装

CocoaPods

pod "Metron"

Metron 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile

Carthage

github "toineheuvelmans/Metron"

Metron 也可通过 Carthage 获得。要安装它,只需将以下行添加到您的 Cartfile

Swift Package Manager

dependencies: [
    .Package(url: "https://github.com/toineheuvelmans/metron.git", majorVersion: 1)
]

Metron 也可以与 Swift Package Manager 一起使用。将 Metron 添加到您的 Package.swiftdependencies 值中

建议或反馈?

欢迎创建 pull request,提出 issue 或在 Twitter 上找到我。

许可证