2009-05-10 2 views
5

Я хочу сделать следующее:Core Animation или OpenGL ES?

Коснитесь экрана и нарисуйте 3 cricles вокруг отмеченной точки. Лучше ли это делать с помощью Core Animation или OpenGL ES?

С чего начать?

+1

В OpenGL нет свободного места. Кроме того, на IPhone это OpenGL ES (встроенная система). Я отредактировал ваш вопрос. – Zifre

+1

Какая услуга ;-) Спасибо – Stefan

ответ

4

Как уже упоминалось, структура Core Graphics, вероятно, что вы хотите. Хорошим способом сделать это будет подкласс UIView, затем переопределить два метода: drawRect: и touchesEnded:withEvent:.

Когда событие касания заканчивается на UIView, вы можете получить точку последнего касания от события, прошедшего до touchesEnded:withEvent:, и сохранить его как-то в случае вашего подкласса UIView.

Тогда в вашей реализации drawRect:, вы получите сохраненную последнюю точку касания, и нарисуйте три круга вокруг него с помощью трех вызовов CGContextAddEllipseInRect, как описано здесь: Quartz 2D Programming Guide: Paths (регистрация в компании Apple Developer требуется).

+0

Ничего себе, супер методы и документы для начала! Благодарю. – Stefan

2

Core Graphics определенно проще и лучше для 2D. OpenGL ES создан для 3D, но также может использоваться для 2D. Оба могут использоваться, поэтому, если вы уже знаете один, используйте это. На самом деле это не имеет большого значения.

Я уже знал OpenGL, поэтому я предпочитаю использовать OpenGL ES даже для 2D, но если вы еще не использовали его раньше, переходите к Core Graphics.

+0

Почему Core лучше для 2D, чем OpenGL ES? –

10

Мой опыт таков: чем сложнее мое приложение, тем больше я понял, что должен был использовать OpenGL ES для того, что я пытался сделать.

Итак, для вашей ситуации, если то, что вы описали, есть все, конечно, Core Graphics делает трюк. Но, я предполагаю, что это больше, чем три круга.

Не имея опыта работы с OpenGL вообще, кривая обучения для ES составляла около 20 дней.

Таким образом, мой совет: OpenGL ES для почти каждого приложения с графикой на основе рамки-кадра.

+0

Прохладный, 20 дней будет в порядке. Вы использовали только документ Apple, или есть какая-то книга, которую вы бы порекомендовали? – Stefan

+1

Я рекомендую Красную книгу (http://www.glprogramming.com/red/). Помимо этого, просмотрите страницы OpenGL от Khronos (http://www.khronos.org/opengles/). И, конечно, упорные Гуглы. – Kriem

3

Преимущество обучения OpenGL ES в том, что время, которое вы изучили, поможет вам в будущем в приложениях iPhone и других устройствах.

В OpenGL ES нет встроенного способа рисования круга, поэтому используйте синус и косинус для создания кругов из сегментов.

+0

Хорошо, OpenGL ES выглядит многообещающим.Я попробую в следующий раз, я получу пару часов бесплатно. – Stefan

Смежные вопросы