Metron 1.0.4

Metron 1.0.4

Toine Heuvelmans 维护。



Metron 1.0.4

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

Metron

几何学,简化版本。

Metron 是一系列几何函数和类型的综合集,它扩展了 CoreGraphics 提供的 2D 几何原语的函数。Metron 完全用 Swift 编写,允许你用非常直观的语句表达复杂的几何计算。

示例 1。

Circle(in: viewFrame).contains(touchPoint)

↳ 创建一个位于 viewFrame 内(居中)的 Circle,并检查 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,返回与视图框架(frame)的 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

  • 到其他 CGPoint 的距离
  • 裁剪到 CGRect
  • 相对位置在 CGRect
  • 规范化位置在 CGRect
  • 转换为 CGVector
  • 四舍五入到非小数部分
  • 加法、减法、乘法...
  • CGPoints 数组构成的凸包(返回一个 多边形

对于 CGVector

  • 量大小
  • 角度
  • 带大小和角度的便捷初始化器
  • 转换为 CGPoint
  • 反变换
  • 主边
  • 主角
  • 从一个点推导出线
  • 从一个点推导出线段
  • CGAffineTransform 扩展
  • 加法、减法、乘法...

对于 CGSize

  • 面积
  • 交换宽度和高度
  • 裁剪到其他 CGSize
  • 使用乘法和除法进行缩放

对于 CGRect

  • 许多便捷初始化器,包括 AspectFit / AspectFill 用于大小
  • 缩放
  • 角点
  • 边作为线段
  • 面积
  • 中心
  • 周长
  • CGPath

对于 CGRectEdge

  • 坐标轴(x 或 y)
  • 相邻角
  • 相对边

对于 CGAffineTransform

  • 使用 CGVector 创建平移变换
  • 使用指定的锚点应用变换

新类型

  • 斜率
  • y轴截距
  • x轴截距
  • 水平?/ 竖直?/ 平行于:(...)?
  • 获取垂直线
  • 确定与其他 行线段 的交点

行线段

  • 长度
  • 导出
  • 旋转
  • 确定与其他 行线段 的交点
  • CGPath

  • 半径
  • 直径
  • 周长
  • 面积
  • 中心
  • 宽度 / 高度
  • 边界矩形
  • 包含点?
  • CGPath
  • 周长上的点(将圆分成步数,沿特定方向旋转...)

三角形

  • 顶点(作为 CGPoint
  • 边(作为 行线段
  • 角度(作为 角度,详见下文)
  • 角平分线(作为 行线段
  • 高(作为 行线段
  • 等边?/ 等腰?/ 锐角?/ 直角?/ 斜边?/ 锐角?/ 钝角?
  • 质心
  • 外心
  • 内心
  • 垂心
  • 面积
  • 边界矩形
  • 包含点?
  • CGPath

正方形

  • 边长
  • 面积
  • 周长
  • 中心
  • CGPath
  • DRect

多边形

  • 使用点或线段初始化
  • 边数
  • 自相交吗?
  • 凸形/凹形?
  • 面积
  • 周长
  • 中心
  • 边界矩形
  • 包含点?
  • CGPath

  • 相邻边(《CGRectEdges》)
  • 对角线

角度

  • 使用弧度或角度初始化
  • 转换单位
  • 归一化
  • 反转
  • 比较
  • 加法、减法、乘法...
  • 基本三角函数也接受“角度”
  • 使用“角度”创建旋转《CGAffineTransform》

安装

CocoaPods

Metron 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "Metron"

Carthage

Metron 还可以通过 Carthage 提供。要安装它,只需将以下行添加到您的 Cartfile 中

github "toineheuvelmans/Metron"

Swift 包管理器

Metron 也可以与 Swift 包管理器 一起使用。将 Metron 添加到您的 Package.swift 文件的 dependencies 中的值

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

建议或反馈?

请随意创建一个合并请求,发起一个问题或在Twitter上找到我(https://twitter.com/toineheuvelmans)

许可

Metron 在MIT许可下可用。更多信息请参阅LICENSE文件。