Допустим, у нас есть UIBezierPath ... границы которого совершенно квадратные ... как это:
func getExponentPath(rotate180: Bool) -> UIBezierPath {
// establish unit of measure (grid) based on this containing view's bounds... (not to be confused with this bezierpath's bounds)
let G = bounds.width / 5
let exponentPath = UIBezierPath()
let sstartPoint = CGPoint(x:(3.8)*G,y:(1.2)*G)
exponentPath.move(to: sstartPoint)
exponentPath.addLine(to: CGPoint(x:(5)*G,y:(1.2)*G))
exponentPath.addLine(to: CGPoint(x:(4.4)*G,y:(0.2)*G))
exponentPath.addLine(to: CGPoint(x:(5)*G,y:(0.2)*G))
exponentPath.addLine(to: CGPoint(x:(5)*G,y:(0)*G))
exponentPath.addLine(to: CGPoint(x:(3.8)*G,y:(0)*G))
exponentPath.addLine(to: CGPoint(x:(3.8)*G,y:(0.2)*G))
exponentPath.addLine(to: CGPoint(x:(4.4)*G,y:(0.2)*G))
exponentPath.addLine(to: sstartPoint)
exponentPath.close()
// this does not work:
// if rotate180 { exponentPath.apply(CGAffineTransform(rotationAngle: CGFloat.pi)) }
return exponentPath
}
Если повернуть, этот bezierpath все еще должен занимать ту же самую область в пределах его содержанияview.
Я могу только предположить, что это не работает, потому что есть некоторая проблема с центром вращения, не являющимся тем, что я намереваюсь ... хотя я получаю тот же (неправильный) результат, даже когда говорю "повернуть на 0."
Итак, как можно повернуть траекторию вокруг своей центральной точки?
Кажется, что должен существовать простой тип умножения матрицы линейной алгебры, который можно применить к множеству точек.= Т