2012-05-02 17 views
8

drawRectをオーバーライドすると、そこの座標は0,0を左上として使用することがわかりました。コアグラフィックス座標系

一部のiOSテクノロジーデフォルトが原点位置と方向のUIKitで使用されるものとは異なる座標系を定義します。

しかし、Apple UIViewのプログラミングガイドが、これは言います。たとえば、Core GraphicsおよびOpenGL ESでは、ビューまたはウィンドウの左下隅に原点があり、y軸が画面に対して上を指す座標系が使用されます。

私は混乱しています。彼らはここでコアグラフィックスを参照するとき、彼らはクォーツとは何かについて話していますか?

答えて

7

このドキュメントの「コアグラフィックス」は「Quartz」を意味します。それは単なる単純化すぎです。

自分でCGContextを作成すると、その座標系の原点は左下になります。 UIKitがビューに描画するためにCGContextを作成すると、-drawRect:を呼び出す前に座標系を有効に反転します。

2

iOS上のCore GraphicsとQuartzは、座標が同じであれば、同じことがあります。 iOS Technologies Guideがそう言う:(また、石英としても知られる)

コアグラフィックス...

をコアグラフィックスフレームワーク(CoreGraphics.framework)は石英、2D描画APIのためのインターフェースを含んでいます。クォーツは、Mac OS Xに使用されているのと同じ高度、ベクトルベースの描画エンジンである

区別は技術的には、クォーツ技術や仕組み、および「コアグラフィックス」の名前である、ということですフレームワーク。 (Mac OSで、当然のことながら、ちょうど傘である「クォーツ」の枠組みは、実際にあります。)

2

このスレッドを発見他人の利益のために:

座標系の完全な説明はここにあります:Coordinate Systems in Cocoa

違いがあるとは限りません。あなたのアプリケーションでさまざまなレベルの視点で座標系を変換する方法があります!例えば、これは、ズームされた画像上の可視スクリーンの(20,20)にあるポイントの座標を見つける。結果はズームされた画像の原点を基準にしたものになります。

croppingFrame.origin = [self convertPoint:CGPointMake(20.0, 20.0) fromCoordinateSpace:(self.window.screen.fixedCoordinateSpace)];