Рисование с помощью Quartz2D нескольких проблем с изображениями? - PullRequest
0 голосов
/ 31 июля 2011

Я пытаюсь сделать простое приложение для рисования, чтобы учиться.Насколько я понял:

CGContextRef context = UIGraphicsGetCurrentContext();


CGContextSetLineWidth(context, 2.0);

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

CGFloat components[] = {0.0, 0.0, 0.0, 1.0};

CGColorRef color = CGColorCreate(colorspace, components);

CGContextSetStrokeColorWithColor(context, color);

CGPoint firstPoint = [[self.array objectAtIndex: 0] CGPointValue];

CGContextMoveToPoint(context, firstPoint.x, firstPoint.y);

for (int i = 0; i < [self.array count]; i++) {
  CGPoint nextPoint = [[self.array objectAtIndex:i] CGPointValue];
   CGContextAddLineToPoint(context, nextPoint.x, nextPoint.y);
}

CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);
}

Пока все работает, это рисование там, где вы касаетесь, и сложение координат в массиве.Если вы перестаете касаться и касаетесь другой точки, это соединяет пути, которые вы нарисовали ранее.Который я на самом деле не хочу.Поэтому я думал о создании нового массива после окончания касания.Я совершенно не прав или это правильное направление действий?Иногда мне не хватает логики для программирования, но эй, я все еще учусь!

Заранее спасибо!

1 Ответ

0 голосов
/ 31 июля 2011

Если вы хотите собирать штрихи, где вы рисуете вещи в массиве, и вы также хотите иметь возможность рисовать отдельные кривые, то вы должны создать новый массив в каждом touchesBegan.Вы можете сделать это также в прикосновениях. Это не сильно отличается.Если вам действительно нужно хранить координаты касаний в массиве, я не уверен, это зависит от вашей общей функциональности ...

...