Рисование призмы с помощью CoreAnimation - PullRequest
3 голосов
/ 04 июля 2010

Я пытаюсь нарисовать призму и анимировать ее с помощью CoreAnimation.Но я не могу найти хорошее решение, чтобы нарисовать веер из цветов радуги.

prism

Есть несколько способов сделать это, у каждого из них есть свои недостатки:

  • Я мог бы просто использовать изображение.Но я разрешаю пользователю увеличивать масштаб сцены и избегать любых артефактов.
  • Использование CAGradientLayer создает прекрасную радугу.К сожалению, теперь существует перекос (или сжатие) для преобразования прямоугольной радуги в треугольник.
  • Простой эффект перекоса слоя может быть получен путем изменения элемента матрицы m34 матрицы преобразования слоя.Но я не смог получить форму треугольника (потому что слой должен был бы быть бесконечного размера).
  • OpenGL.Это сработает, но, может быть, есть более простой способ.

Есть предложения?

1 Ответ

0 голосов
/ 05 ноября 2014

Вы можете получить любой вид четырехугольника, изменив transform свойство CALayer. AGGeometryKit имеет несколько хороших инструментов для создания CATransform3D для четырехугольника.

...