2014-01-30 2 views
0

Итак, моя ситуация в том, что я рисую много концентрических кругов, и для того, чтобы сделать это более эффективным, я хочу только нарисовать 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 раз и сделать полный круг:

enter image description here

EDIT 3: Фиксированный код соответствует тому, что я говорю.

+0

Вы хотите создать растровое изображение с прозрачностью, нарисовать фрагмент, повернуть и вставить фрагмент в целевое растровое изображение семь раз, соблюдая прозрачность, чтобы создать полный круг? И вы ожидаете, что это будет БОЛЕЕ эффективнее, чем просто рисовать круг? Если бы это действительно было бы более эффективным, чем алгоритм рисования окружности был бы реализован таким образом (и, следовательно, вам не нужно будет делать это вручную). Это не так. –

+0

Плюс вы не могли использовать сглаживание, или вы получите довольно уродливые артефакты на каждом шве. –

+0

Ну, я думал, что если я нарисую 1/8, я могу просто положить его в 7 других местах. Если будет достаточно кругов, скажем, около 100, я начну видеть выгоду? – user1875290

ответ

0

Я думаю, что g2 - это объект Graphics2D? Затем вы можете использовать

g2.setTransformation(); 

и использовать AffineTransformation, чтобы повернуть изображение. Наверху следует более эффективно использовать

g2.drawOval(...); 

для того, чтобы нарисовать круги.

+0

Спасибо за ваш ответ. Я понял, что объяснил это совершенно неправильно! На самом деле это немного сложнее, возможно, невозможно. Я сделал некоторые изменения. – user1875290

+0

Ничего нельзя. Может быть, сложно, неэффективно или сложно - но никогда не бывает невозможным;) – datosh

Смежные вопросы