плавный рисунок в айфоне

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

введите здесь описание изображения

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

Я попробовал http://www.merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/

но это противоположно моей потребности.

Может кто имеет представление об этом виде гладкого рисунка?


person Crazy Developer    schedule 12.07.2012    source источник
comment
Кто-нибудь знает какой-нибудь платный или бесплатный API, чтобы рисовать плавно, как на изображении выше.   -  person Crazy Developer    schedule 17.07.2012


Ответы (2)


Я вижу кусок кода в ссылке примера, которую вы дали

- (float)extractSize:(UIPanGestureRecognizer *)panGestureRecognizer
{
    // 1
    float vel = ccpLength([panGestureRecognizer velocityInView:panGestureRecognizer.view]);
    float size = vel / 166.0f;
    size = clampf(size, 1, 40);
 
    // 2
    if ([velocities count] > 1) {
        size = size * 0.2f + [[velocities objectAtIndex:[velocities count] - 1] floatValue] * 0.8f;
    }
    [velocities addObject:[NSNumber numberWithFloat:size]];
    return size;
}

Ты можешь попробовать ? заменив его на...

- (float)extractSize:(UIPanGestureRecognizer *)panGestureRecognizer
{
    // 1
    float vel = ccpLength([panGestureRecognizer velocityInView:panGestureRecognizer.view]);
    float size = vel / 166.0f;
    size = clampf(size, 1, 40);
     
    // 2
    if ([velocities count] > 1) {
        size = size * 1.2f + [[velocities objectAtIndex:[velocities count] - 1] floatValue] * 0.8f;
    }
    [velocities addObject:[NSNumber numberWithFloat:size]];
    return size;
}

EDIT: В любом случае, играя с этим методом, вы должны получить то, что хотите.

person Vaibhav Tekam    schedule 12.07.2012

Добавить код

size = 40 - size;

Как показано ниже, код Чтобы сделать точно наоборот.

- (float)extractSize:(UIPanGestureRecognizer *)panGestureRecognizer
{
  //! result of trial & error
  float vel = ccpLength([panGestureRecognizer velocityInView:panGestureRecognizer.view]);

  float size = vel / 166.0f;

  size = clampf(size/2, 1, 20);

  if ([velocities count] > 1) {
    size = size * 0.2f + [[velocities objectAtIndex:[velocities count] - 1] floatValue] * 0.8f;
  }
  [velocities addObject:[NSNumber numberWithFloat:size]];
  return size;
}
person sschunara    schedule 23.11.2012
comment
Замените ниже размер кода = clipf (размер, 1, 40); ////Добавить строку ниже///// size = 40 - size; с этим размером = clipf(size/2, 1, 20); Так как я внес изменения в приведенный выше код. Это сработало для меня, надеюсь, это поможет и вам. - person sschunara; 28.11.2012