2010-07-25 3 views
0

Я должен нарисовать линию между двумя точками, используя кварц. В какой-то момент у меня есть этот код:iphone - может ли растровое изображение штамповаться по пути в кварце?

CGContextBeginPath(ctx); 

CGContextMoveToPoint(ctx, lastPoint.x, lastPoint.y); 
CGContextAddLineToPoint(ctx, currentPoint.x, currentPoint.y); 
CGContextStrokePath(ctx); 

Это линии создаст жесткую линию между точками currentPoint и lastPoint. Линия такая сложная, как сделано путем штамповки квадрата пикселей от одной точки к другой.

Можно использовать растровое изображение (например, маленький белый размытый шар), чтобы заменить этот жесткий наконечник кисти и создать мягкость на линии? Я имею в виду, создать мягкую линию с размытыми краями?

Очевидно, что маленький белый размытый шар должен быть промаркирован вдоль пути, чтобы выполнить это. Это возможно? Как?

Просмотреть следующее изображение. Левая строка - это то, что делает код в настоящее время. Правильная линия - это то, что я хотел бы сделать.

alt text

благодаря

ответ

1

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

+0

спасибо. Этот метод дает мне немного лучший результат ... не совсем то, что мне нужно, но лучше. Я не уверен, будет ли тиснение изображения вдоль пути будет достаточно быстрым, чтобы приложение продолжало свет ... Я постараюсь. – SpaceDog

1

Использование растрового изображения вряд ли предоставит вам удовлетворительные результаты рисования, как и любые другие методы кварца для рисования размытости линий в режиме реального времени. Это будет боль, но вам следует серьезно подумать об использовании openGL. См. Пример Apple GLPaint.

Смежные вопросы