Java: штрих с закрашенной формой - PullRequest
2 голосов
/ 01 апреля 2011

Это не очень важно, но меня это немного беспокоило.

Описание проблемы:
Дано: строка (Line2D)
Требуется: рисование линии в виде клина (Filled GeneralPath)

Конечно, это можно сделать, создав клин в качестве общего пути, а затем заполнив его графикой (мое решение),

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

Видимо, кажется, что заполнение Graphics2D толькозаполняет форму, которую он получает - и не обрабатывает заполнение обводки (такое поведение имеет смысл, если вы об этом думаете).

Вопрос: Есть ли способ заполнить формуStroke (заполнение фигуры - точнее, GeneralPath - как-то до ее рисования)?

Ответы [ 3 ]

3 голосов
/ 01 апреля 2011

Как только вы используете createStrokedShape(), обратите внимание, что draw() "обводит контур Shape," тогда как fill() "заполняет внутреннюю часть Shape ".

3 голосов
/ 01 апреля 2011

Может быть BasicStroke.public Shape createStrokedShape(Shape s) может помочь, если вы пройдете туда Line2D?

0 голосов
/ 20 мая 2016
import java.awt.*;

public static Shape strokeToShape(Shape path, float strokeWidth)
    return new BasicStroke(strokeWidth).createStrokedShape(path);
}

Вы также можете указать cap и join параметры BasicStroke

...