🏛️GeometryKit
swift ⟩ type ⟩ custom ⟩ package ⟩ GeometryKit
為了方便幾何計算而設計的模組,支援向量、複數運算。 🔗 https://github.com/lochiwei/GeometryKit
MetricSpace:支援「距離」觀念
Frame:簡化 frame 與 CGRect 的相關計算
Vector:支援「向量運算」的底層邏輯
Vector2D:支援「平面幾何」的各種計算
ComplexNumber:支援「複數」運算
將要遵循 GeometryKit 相關協定 (Vector2D, ComplexNumber 等) 的具體型別列在一個獨立的檔案中,並加入該遵循的條件:
// 📁 +GeometryKit.swift
import SwiftUI
import GeometryKit
// ⭐️ CGPoint + Vector2D
extension CGPoint: Vector2D {
// 因為 CGFloat 已經擁有該遵循的屬性、方法,
// 所以只要指明 associated type 即可。
public typealias Scalar = CGFloat
}
// ⭐️ CGSize + Vector2D
extension CGSize: Vector2D {
public typealias Scalar = CGFloat
// CGSize 沒有 x, y 屬性
public var x: CGFloat { width }
public var y: CGFloat { height }
// CGSize 沒有 init(x:y:) initializer
public init(x: CGFloat, y: CGFloat) {
self.init(width: x, height: y)
}
}做好這些擴充宣告後,其他檔案就不需要再宣告一次了。但使用到 GeometryKit 相關功能時,還是需要 import GeometryKit,請注意❗️
ChatGPT ⟩
Last updated
Was this helpful?