Итак, моя ситуация в том, что я рисую много концентрических кругов, и для того, чтобы сделать это более эффективным, я хочу только нарисовать 1/8 круга, а затем зеркально отобразить и повернуть остальные чертежи. Чтобы быть ясным, допустим, у меня есть следующий код:Как Зеркало/Поворот рисунка «fillArc»?
for(int i = 0; i < end; i++) {
posX = calcX(i);
posY = calcY(i);
length = calcLength(i);
g2.fillArc(posX, posY, length, length, 0, 45);
}
// mirror/rotate 7 times...
Возможно ли это? Я знаю, что вы можете использовать изображение, но это кажется более сложным.
Заранее благодарим за вашу помощь!
EDIT: g2 - это объект Graphics2D.
EDIT 2: Итак, скажем, у меня есть следующий фрагмент. Есть ли способ, чтобы принять весь этот слайд (нарисованный «fillArc») и скопировать его в 7 раз и сделать полный круг:
EDIT 3: Фиксированный код соответствует тому, что я говорю.
Вы хотите создать растровое изображение с прозрачностью, нарисовать фрагмент, повернуть и вставить фрагмент в целевое растровое изображение семь раз, соблюдая прозрачность, чтобы создать полный круг? И вы ожидаете, что это будет БОЛЕЕ эффективнее, чем просто рисовать круг? Если бы это действительно было бы более эффективным, чем алгоритм рисования окружности был бы реализован таким образом (и, следовательно, вам не нужно будет делать это вручную). Это не так. –
Плюс вы не могли использовать сглаживание, или вы получите довольно уродливые артефакты на каждом шве. –
Ну, я думал, что если я нарисую 1/8, я могу просто положить его в 7 других местах. Если будет достаточно кругов, скажем, около 100, я начну видеть выгоду? – user1875290