2011-02-09 3 views

답변

1

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); 
0

CGPoint (같은 CGSize 또는 CGRect)은 C 구조이며, "그릴 수"있어야되지 않습니다. 좌표 트리 나 기하학적 인 "물건"의 수학 표현 일 뿐이므로 디스플레이 트리에 추가 할 수 없습니다.

당신이 당신의 UIView에 "점"을 표시해야하고 당신이 그것을 제어해야 할 경우, 당신의 부모 UIView에 자식 UIView를 추가 색상 배경에 1 픽셀의 사각형의 프레임을 가진 (당신이 그것을 표시해야하는 경우) . 이 경우 부모 UIView에 대한 공간적 수정은 자식 UIView (심지어 회전)에 영향을 미칩니다.

CGPoint의 각도를 다른 점에 대해 상대적으로 회전해야하는 경우, 필요한 수학이 포함 된 멋진 대답을 참조하십시오.

Rotate a point by another point in 2D

챠오!