私は次のことをしたい:
画面をタップし、タップしたポイントの周りにクリクルを 3 つ描きます。Core Animation と OpenGL ES のどちらでこれを行う方が良いですか?
どこから始めればよいですか?
私は次のことをしたい:
画面をタップし、タップしたポイントの周りにクリクルを 3 つ描きます。Core Animation と OpenGL ES のどちらでこれを行う方が良いですか?
どこから始めればよいですか?
私の経験は次のとおりです。アプリが複雑になればなるほど、やろうとしていたことに OpenGL ES を使用するべきだったことに気づきました。
したがって、あなたの状況では、あなたが説明したことがすべてである場合、確かにCore Graphicsがそのトリックを行います。しかし、3 つの円以上のものがあると思います。
OpenGL の経験がまったくないため、ES の学習曲線は約 20 日でした。
したがって、私のアドバイスは次のとおりです。ほぼすべてのフレーム間グラフィックス ベースのアプリに OpenGL ES を使用します。
前述のとおり、Core Graphics フレームワークはおそらく必要なものです。それを実行する良い方法は、UIView をサブクラス化し、2 つのメソッドdrawRect:
とをオーバーライドすることtouchesEnded:withEvent:
です。
タッチ イベントが UIView で終了すると、 に渡されたイベントから最後のタッチのポイントを取得し、touchesEnded:withEvent:
サブクラス化された UIView のインスタンスに何らかの方法で保存できます。
次に、 の実装でdrawRect:
、保存されている最後のタッチ ポイントを取得し、 への 3 回の呼び出しを使用して、その周りに 3 つの円を描画します。これCGContextAddEllipseInRect
については、こちらで説明しています: Quartz 2D プログラミング ガイド: パス(Apple Developer としての登録が必要です)。
OpenGL ES を学習する利点は、それを学習するために費やした時間が、将来 iPhone アプリやその他のデバイスで役立つことです。
OpenGL ES では、円を描画する方法が組み込まれていないため、サインとコサインを使用して線分から円を作成します。
Core Graphics は間違いなくシンプルで、2D に適しています。OpenGL ES は 3D 用に作成されていますが、2D にも使用できます。どちらも使えるので、知っている人はそちらを使ってください。それほど重要ではないはずです。
私はOpenGLを知っていたので、2DでもOpenGL ESを使用する傾向がありますが、使用したことがない場合はCore Graphicsを使用してください。
これは、Quartz 2D (Core Graphics とも呼ばれます) で行うのが最適です。
Apple の Quartz プログラミング ガイドを参照してください。