Как внедрить инструмент ластика в простое приложение для рисования? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть прототип простого приложения для рисования.Когда пользователь проводит пальцем по экрану, я записываю точки по пути и провожу между ними серию линий.Другими словами, чертеж - это список «путей», а каждый путь - это список точек для соединения.Это легко, работает и эффективно.

Проблема в том, что я хотел бы реализовать инструмент ластика.В обычном редакторе растровых изображений ластик просто стирает пиксели, но в моем чертеже нет пикселей, которые нужно стереть - все пиксели создаются динамически, обводя контуры.Я мог бы сделать простой ластик, «рисуя», используя цвет фона, накладывая уже нарисованные контуры.Но я хотел бы нарисовать на текстурированном фоне, так что это не пойдет.

Как бы вы это сделали?(Если не считать очевидного решения представления чертежа в виде растрового изображения, в котором ластик прост.)

Ответы [ 3 ]

2 голосов
/ 23 сентября 2010

Вы не можете реализовать ластик в традиционном смысле; то, что вы описываете при записи путей и их динамическом рисовании, это векторная графика . Концепция ластика происходит от растровой графики (в основном, растровое изображение). В случае векторной графики пользователь обычно выбирает элемент или область элементов для удаления.

Если вы действительно хотите это сделать, вам, в основном, придется обнаруживать столкновения между всеми путями на графике и прямоугольником (или любой другой формой) ластика. Когда происходит контакт, вам придется разрезать сталкивающийся графический объект по обе стороны от ластика, используя наклон линии (ей) в контакте с ластиком и точку пересечения.

1 голос
/ 23 сентября 2010

Я мог бы сделать простой ластик, «Рисование» с использованием цвета фона, наложение уже нарисованных дорожек. Но я хотел бы нарисовать на текстурированной фон, так что нет.

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

1 голос
/ 23 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...