Цель C: Использование UIImage для поглаживания - PullRequest
2 голосов
/ 28 ноября 2011

Я пытаюсь применить текстуру для моей кисти, но мне действительно трудно понять, как это делается.

Вот изображение моего вывода.

Я использовалUIImage, которое просто следует за прикосновением к экрану, но когда я провожу его пальцем быстрее, результат будет справа "W", а слева - результатом, когда я проведу пальцем медленно.

enter image description here

Я пытался использовать CGContextMoveToPoint и CGContextAddLineToPoint Я не знаю, как применить текстуру.

Можно ли использовать UIImage для текстуры обводки?

Вот мой код

    UIImage * brushImageTexture = [UIImage imageNamed:@"brushImage.png"]; 
    [brushImagetexture drawAtPoint:CGPointMake(touchCurrentPosition.x, touchVurrentPosition.y) blendMode:blendMode alpha:1.0f];

1 Ответ

5 голосов
/ 28 ноября 2011

Вам необходимо вручную нарисовать изображение в каждой точке вдоль линии от предыдущей точки до текущей.

CGPoint vector = CGPointMake(currentPosition.x - lastPosition.x, currentPosition.y - lastPosition.y);
CGFloat distance = hypotf(vector.x, vector.y);
vector.x /= distance;
vector.y /= distance;
for (CGFloat i = 0; i < distance; i += 1.0f) {
    CGPoint p = CGPointMake(lastPosition.x + i * vector.x, lastPosition.y + i * vector.y);
    [brushImageTexture drawAtPoint:p blendMode:blendMode alpha:1.0f];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...