iOS — вращение сферы и реагирование на прикосновения

#iphone #objective-c #opengl-es

#iPhone #objective-c #opengl-es

Вопрос:

Мне было поручено создать сферу, которую можно поворачивать касанием (или анимировать) вдоль одной оси, как обычный земной шар. Я также должен уметь рисовать анимированные линии на этой сфере (например, нарисовать линию между Сиднеем и Нью-Йорком). Обычно я делаю все свои анимации в 2D, обычно используя основную анимацию, поскольку у меня никогда не было необходимости делать что-либо еще. У меня такое чувство, что проблема такого рода требует, чтобы я перешел на OpenGL.

Мой вопрос в том, возможно ли достичь этого с помощью core animation (время имеет существенное значение), или мне действительно нужно быстро изучить OpenGL. Если да, то достаточно ли просто решить эту проблему? Я довольно хороший программист, но у меня нет опыта работы с OpenGL. Сможет ли способный программист сделать это, скажем, за 2 недели?

В качестве дополнительного вопроса, предположим, я использую OpenGL, если мне затем нужно будет выполнять другие действия в проекте (например, показывать разные экраны или показывать экраны поверх сферы), могу ли я использовать UIKit или весь проект должен быть на OpenGL?

Ответ №1:

  1. Основная анимация предназначена для анимации видов и в основном представляет собой слой 2D-анимации, поэтому она не подходит для 3D-вращающейся сферы.
  2. Нарисовать текстурированную сферу довольно просто, смотрите этот пример
  3. Смешивание GL и обычного UIView не является проблемой. Вы можете накладывать обычные элементы управления на вид GL.

Комментарии:

1. Я понимаю, что основная анимация выполняется только в 2D формате, но я подумал, что было бы возможно исказить 2D-слой, чтобы придать ему вид сферы. Это, вероятно, немного выше моего понимания лично, но все же кажется, что это должно быть выполнимо? Также спасибо за ссылку — она выглядит удобной.

2. вы не так уж много можете сделать, выполняя 2D-преобразования. я бы посоветовал вам ознакомиться с OpenGL, там есть масса приятных примеров того, как нарисовать текстурированную сферу. новые руководства Google для получения дополнительной информации