Создать конический ход - PullRequest
       59

Создать конический ход

0 голосов
/ 14 сентября 2011

Некоторые программы рисования, такие как Manga Studio, включают кисти, которые сужаются до точки в конце мазка. У меня есть несколько идей о том, как это можно реализовать, но идеи, которые мне кажутся проблемными / неэффективными ... Мне не удалось найти какую-либо информацию об этой задаче через Google, поэтому я решил спросить здесь.

Кто-нибудь знает какие-либо алгоритмы создания конусообразного штриха в AWT?

Мне нужно выяснить, как преобразовать координаты мыши, которые у меня уже есть, из событий мыши, например (x50, y50) - (x37, y20) - (x47, y10) в аргументы для Path2D.curveTo () или что-то в этом роде. Как вы делаете математику для сужения удара? (Я не думаю, что есть какой-то способ сделать это без достаточного количества математики ... хотя я полагаю, что могу ошибаться.)

Спасибо!

Редактировать: обратите внимание, что пользователю разрешено рисовать от руки на изображении, используя этот штрих, что означает, что стороны обводки должны изгибаться в соответствии с пером пользователя.

1 Ответ

1 голос
/ 15 сентября 2011

Polygon - хороший выбор. Так как он реализует интерфейс Shape, доступен createStrokedShape(), как показано здесь . AffineTransform может применяться для поворота, перемещения или масштабирования объекта, как показано здесь и здесь . Примеры могут помочь вам оценить эффективность.

Приложение: хотя я не пробовал, Arc2D может быть разумной альтернативой вращению Polygon. Связанный QuickDraw примитив однажды дал почтенному MacDraw отличительную форму для наконечников стрел .

...