几何图形,化繁为简。
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
的距离CGRect
CGRect
中的相对位置CGRect
中的归一化位置CGVector
CGPoints
数组的凸包(返回 Polygon
)CGPoint
CGAffineTransform
扩展CGSize
CGPath
CGVector
创建平移变换Line
或 LineSegment
的交点Line
Line
或 LineSegment
的交点CGPath
CGPath
CGPoint
)LineSegment
)Angle
,请参见下文)LineSegment
)LineSegment
)CGPath
CGPath
CGRect
CGPath
CGRectEdges
)Angle
CocoaPods
pod "Metron"
Carthage
github "toineheuvelmans/Metron"
Swift Package Manager
dependencies: [
.Package(url: "https://github.com/toineheuvelmans/metron.git", majorVersion: 1)
]
Package.swift
的 dependencies
值中建议或反馈?
许可证