Iphone / Ipad: Какой самый быстрый способ нарисовать неправильный многоугольник в прямоугольнике? - PullRequest
0 голосов
/ 06 марта 2011

Я должен нарисовать следующую фигуру в прямоугольнике.Каков наилучший способ сделать это?Синие области - это цвет фона.Черный - это граница, а красный - цвет интерьера.Я хочу рисовать только черный и красный.

Спасибо

enter image description here

1 Ответ

2 голосов
/ 07 марта 2011

Это полностью зависит от того, как вы будете использовать форму;будут ли они перемещаться, сколько из них будет отображаться, будут ли они масштабироваться во время отображения и т. д.

В целом OpenGL ES считается самым быстрым способом рисования на устройствах iOS.Однако, если у вас есть только небольшое количество этих фигур (скажем, <10 ~ 100?), А другая часть приложения не имеет много быстрых анимаций, Quart 2D обычно достаточно для рисования, чтобы:скажем, достичь частоты рисования 30/60 Гц. </p>

Как вы используете Quartz2D, все еще имеет большое значение.Если вам нужно часто перерисовывать фигуры, вам нужно нарисовать фигуру на слоях CALay, и вместо того, чтобы перерисовывать фигуры, вы должны перемещать и преобразовывать слои.

Сравнивая рисование как растровое изображение и векторную форму, я полагаю, что оба отлично подойдут для такого типа фигур (особенно потому, что вы бы не перерисовывали форму так часто, но работали толькослой, на котором изображение уже нарисовано).Но если ваши фигуры часто масштабируются, вы должны рассмотреть векторные изображения для качества изображения.

Подводя итог, узнайте (если вы еще не знаете), как сначала рисовать в графическом контексте (см. Руководство по рисованию и печати для iOS ).Вы должны иметь возможность нарисовать простую векторную форму или растровое изображение, переопределив drawRect или аналогичные методы внутри объекта UIView.Затем, если вам нужно анимировать эти фигуры, узнайте, как создать CALayer и рисовать на слое (см. Руководство по программированию базовой анимации ).Наконец, если вам нужно создать много дубликатов фигуры на экране, узнайте, как использовать CGLayer для репликации изображения (см. Руководство по программированию в Quartz 2D ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...