귀하의 혼란은 이해할 수 있습니다.
사실, 양의 각도는 양의 X 축에서 양의 Y 축을 향하는 회전을 나타냅니다. 음의 각도는 양의 X 축에서 음의 Y 축으로의 회전을 나타냅니다.
"기본"코어 그래픽 좌표계는 표준 Cartesian coordinate system을 모델로 한 것으로 Y 축은 페이지에서 위로으로 증가합니다. 이 시스템에서 정의 각도가 시계 반대 방향으로 회전 대표 : 그래서
를 작성하면 자신의 CGContext
예상대로 (예를 들어, CGBitmapContextCreate
또는 CGPDFContextCreate
를 사용하여), 회전이 작동합니다.
그러나 컴퓨터 시스템은 Y 축이 인 페이지에서으로 증가하는 좌표계를 사용했습니다. 이런 좌표 대칭 시스템에서는, 양의 각은 시계 방향 회전을 나타낸다 : 좌표 시스템 모두에서 양의 각도는 양의 Y 축 방향으로 양의 X 축에서 회전하도록
통지한다.
UIKit은 자신을 위해 생성 한 그래픽 컨텍스트의 좌표계를 뒤집습니다. 여기에는 drawRect:
을 보내기 전에 설정 한 그래픽 컨텍스트와이 그래픽 컨텍스트가 UIGraphicsBeginImageContext
에 설정되어 있습니다. (Quartz 2D Programming Guide에서 이에 대해 설명합니다.) 현재 변환 행렬 (CGContextGetCTM
사용)을 보면이를 확인할 수 있습니다. d
요소에 -1
이라는 요소가 있는데, 이는 Y 축이 뒤집 혔음을 의미합니다.
UIView
은 또한 해당 하위보기를 배치하기 위해 뒤집힌 좌표계를 사용하며 UIView
transform
속성의 의미에 영향을 미칩니다.
필자는 지금 테스트를 통해 동일한 결과를 얻었습니다. 문서는 OSX에서이 동작이 있음을 명시합니다. 네가 말했듯이, 아주 이상해. – Pochi
'value'happen은 π/2가 되나요? –
@bigitia : 네, π/2와 -π/2를 시도했습니다 – romox