Это та вещь, для которой вы хотите использовать библиотеку, скорее всего, Java 2D API . Он включает в себя средства для заливки, обводки, преобразования и фильтров. Его модель похожа на многие библиотеки в том, что вы отслеживаете пути с помощью операторов moveTo
и lineTo
или curveTo
, которые абстрагируются в форме, подобные Ellipse2D
; а затем вы заполняете или обводите результирующий путь с помощью оператора рисования. Я настоятельно рекомендую прочитать учебник по Java 2D и понять, как различные части сочетаются друг с другом.
Я бы сделал примерно следующие шаги для создания этого чертежа:
- Вычислить окончательные размеры повернутого эллипса после размытия.
- Создайте
BuferredImage
этого размера и вызовите его createGraphics
метод для получения контекста рисования.
- Поворот графического объекта
- Нарисовать эллипс
- Заполните черным
- Реализация фильтра размытия по Гауссу. Это не встроено в API, но оно включает в себя структуру для выполнения фильтров под названием
ConvolveOp
, и вы можете найти алгоритм для вычисления ядра Гаусса в Java.
- Примените фильтр к изображению, а затем верните результаты.
Другим вариантом может быть библиотека Apache Batik SVG, поскольку вы можете декларативно выразить желаемый чертеж (включая преобразования и фильтры) и сделать его растеризованным для вас.