Можно ли поместить CGPoint внутри UIView в качестве подпредставления, чтобы при повороте моего UIView CGPoint вращался вместе с ним.
CGPoints и UIViews
Ответы (2)
CGPoint — это логическая конструкция, а не графика. С учетом сказанного следующее приведет к тому, что точка будет вращаться вокруг другой (называемой точки). Это может не относиться напрямую, но должно дать вам некоторое направление. Ключ CGAffineTransform.
CGAffineTransform translateTransform = CGAffineTransformMakeTransation(point.x, point.y);
CGAffineTransform rotateTransform = CGAffineTransformMakeRotation(angle);
CGAffineTransform customTransform = CGAffineTransformConcat(CGAffineTransformConcat( CGAffineTransformInvert(translateTransform), rotateTransform), translateTransform);
newPoint = CGPointApplyAffineTransform(initialPoint, customTransform);
CGPoint
(например, CGSize
или CGRect
) являются структурами C и не должны быть "выводимыми". Я имею в виду, что они представляют собой просто математическое представление координат или геометрических «материалов», поэтому их невозможно добавить в ваше дерево отображения.
Если вам нужно отобразить «точку» в вашем UIView
и вам нужно ею управлять, просто добавьте дочерний UIView
к родительскому UIView
с рамкой квадрата 1px с цветным фоном (если вам нужно его отобразить). В этом случае любая пространственная модификация вашего родительского UIView повлияет на дочерний UIView
(даже поворот).
В противном случае, если вам нужно знать положение поворота CGPoint
на угол относительно другой точки, обратитесь к этому хорошему ответу, который содержит необходимую вам математику.
Повернуть точку на другую точку в 2D
Чао!