我有一个CGPoints数组:
let points = [(1234.0, 1053.0), (1241.0, 1111.0), (1152.0, 1043.0)]
我想做的就是找到CGPoints的中心。因此,我可以将一个对象放置在所有点的中心。如果这是一个可以说整数的数组,则可以这样减少数组:
points.reduce(0, +)
,然后除以总数组数即可得出平均值。但是由于它的CGPoints,这是行不通的。关于如何实现这一目标的任何想法?
您可以像这样迅速地重载操作:
func +(lhs: CGPoint, rhs: CGPoint) -> CGPoint {
CGPoint(x: lhs.x + rhs.x, y: lhs.y + rhs.y)
}
func /(lhs: CGPoint, rhs: CGFloat) -> CGPoint {
CGPoint(x: lhs.x / rhs, y: lhs.y / rhs)
}
let points = [(1234.0, 1053.0), (1241.0, 1111.0), (1152.0, 1043.0)].map({CGPoint(x: $0.0, y: $0.1)})
let m = points.reduce(.zero, +) / CGFloat(points.count)
print(m)