Как написать кривую Безье на лету с одной фиксированной точкой и одним изменением

Если у меня есть объект, выполняющий этот путь анимации CAKeyframe (это просто овальная форма в верхней области iphone..

 UIBezierPath *trackPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 100, 280, 150)];

Теперь представьте, что в любое время во время этих путей я хочу создать плавный путь из его текущей позиции в определенный момент времени и в некоторой точке внизу экрана.

Кстати, я предполагаю, что когда у меня есть путь, я могу остановить текущую CAKeyframe Animation и добавить этот путь в новую анимацию CAKeyframe, но, возможно, если это неверно, вы можете указать мне и здесь указатели, пожалуйста.

1 ответ

Решение

Поэтому я сказал себе: "Я... похоже, вам придется самому ответить на этот вопрос, поскольку никто даже не хочет его редактировать или говорить, что это дубликат......"

Так что я надеялся на более простой или готовый способ сделать это. Из того, что я нашел, нет простого пути. Кажется, шаги будут;

  1. получить текущую позицию анимированного слоя
  2. рассчитать себя со всем своим собственным кодом приятной плавной кривой
  3. добавить этот путь к анимации и анимировать его.

Что касается вычисления кривой Безье, я все еще ищу какой-то класс или код, в которые можно вставить точки, и две контрольные точки создаются для класса UIBezier для создания кривой.

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

Анимация плавного выхода из овала в любой точке очень сложна и в моем случае просто не стоит. Так что я этого не сделал.

Другие вопросы по тегам