Core Animation или OpenGL ES? - PullRequest
       23

Core Animation или OpenGL ES?

5 голосов
/ 10 мая 2009

Я хочу сделать следующее:

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

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

Ответы [ 5 ]

10 голосов
/ 10 мая 2009

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

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

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

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

4 голосов
/ 10 мая 2009

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

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

Затем, в вашей реализации drawRect:, вы получите сохраненную последнюю точку касания и нарисуете три круга вокруг нее, используя три вызова CGContextAddEllipseInRect, как обсуждалось здесь: Руководство по программированию в Quartz 2D: Пути (требуется регистрация в качестве разработчика Apple).

3 голосов
/ 10 мая 2009

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

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

2 голосов
/ 10 мая 2009

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

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

1 голос
/ 10 мая 2009

Лучше всего это сделать с помощью Quartz 2D (также известного как Core Graphics)

См. Руководство по программированию Apple Quartz

...