Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Мягкая кисть во Флеш-рисовалке (http://www.flasher.ru/forum/showthread.php?t=170323)

HardCoder 22.10.2011 15:15

Мягкая кисть во Флеш-рисовалке
 
Здравствуйте. Есть небольшая рисовалка, написанная на АС3. Инструмент кисть работает следующим образом: пользователь щелкает мышью, потом с помощью события MouseMove отрисовывается линия от начальной точки к текущим координатам курсора, потом к следующим координатам курсора и т.д. В итоге получается непрерывная кривая (мазок). Цвет и толщина мазков (линии) определяется пользователем. Но дело в том, что хочу сделать возможность настраивать мягкая/твердая кисть (размытые/четкие края мазка как в фотошоп).
Подскажите, пожалуйста, как реализовать такое.

Zebestov 22.10.2011 15:56

С помощью drawTriangles(). Создать битмапдату с линейным вертикальным градиентом (верх и низ мягкие, середина сплошная). И рисовать не линию, а полигон из двух треугольников, текстурированных этой битмдатой. Получится линия с мягкими краями. По аналогии начало/конец линии создаются с помощью битмапдат с "пушистыми" полукругами.

HardCoder 22.10.2011 18:18

Не знаю, правильно ли я понял, так как drawTriangles() для меня нечто новое. Но не является ли такая линия тем же что и прямоугольник, залитый градиентом?

in4core 22.10.2011 18:32

является да

HardCoder 22.10.2011 19:00

Дело в том, что "отпечаток" кисти - круглой формы. И если рисовать толстую линию с помощью lineTo(), то оба концы у нее будут скругленными (то что мне и надо - так как в других графических редакторах). Но если рисовать треугольниками толстую линию, то концы будут, какбы, квадратными. :o

Zebestov 22.10.2011 21:24

Цитата:

концы будут, какбы, квадратными
а до конца мой ответ осилить никак не выйдет точно? может попробуешь все же :)

HardCoder 23.10.2011 09:19

Цитата:

Сообщение от Zebestov (Сообщение 1041162)
По аналогии начало/конец линии создаются с помощью битмапдат с "пушистыми" полукругами

Теперь понял. Спасибо :)

Art_133 23.10.2011 11:38

Можете привести часть кода? Самому интересно.

crazyone 23.10.2011 15:13

А мне всегда казалось, что лучше всего с этой задачей справляется BlurFilter, наложенный на четкую линию.

HardCoder 23.10.2011 16:18

А правильно ли отрисуется "смягченный" спрайт, с помощью BlurFilter, в Bitmap? Имею в виду: будет ли растровое изображение созданное из Sprite иметь тоже смягченные края?


Часовой пояс GMT +4, время: 01:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.