我有一个CGAffineTransform M,希望对矩阵的每个元素进行四舍五入:
M.a = round(M.a),
M.b = round(M.b),
...
...
有没有一种简单的方法可以在一行中做到这一点?
答案 0 :(得分:1)
我不确定为什么要对矩阵元素进行四舍五入,或者这是否是个好主意。但是无论如何,SDK中没有什么可以让您“一行”地完成它。
您可以在扩展程序中添加一个访问器,以使其变得简单:
import CoreGraphics
extension CGAffineTransform {
var elements: [CGFloat] {
get { return [a, b, c, d, tx, ty] }
set(n) { (a, b, c, d, tx, ty) = (n[0], n[1], n[2], n[3], n[4], n[5]) }
}
}
extension CGAffineTransform {
mutating func round() {
elements = elements.map({ $0.rounded() })
}
}