2013-11-28 2 views
0

Я новичок в Java. Я создаю толстое кольцо в апплете. Я использую метод drawOval в цикле for. Это создает несколько колец, но не центрируется. Пожалуйста, проверьте изображение и помогите мне как можно скорее!Как создать кольцо с помощью drawOval()?

non-centered rings

+0

1) Для лучшей помощи раньше, отправьте сообщение [SSCCE] (http://sscce.org/). 2) Зачем писать апплет? Если это связано со спецификацией. учителем, пожалуйста, обратитесь к [Почему учителя CS должны прекратить преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/). –

+0

Попробуйте вместо этого изменить ход – MadProgrammer

+0

Это мое задание .... Пожалуйста, помогите мне! – zaingz

ответ

1

Вы можете быть в состоянии использовать fillOval() для того, чтобы избежать рисования много различных овалов, так что у вас есть только нарисовать 2, один с цветом края, а другой с цветом фона. Чтобы центрировать овал, попробуйте что-то вроде fillOval(origX + changeInThickness/2, origY + changeInThickness/2, origWidth - changeInThickness, origHeight - changeInThickness)

+0

Большое спасибо .... Я использовал код с небольшими изменениями. Ta = hanks снова – zaingz

0

Здесь каждое кольцо, которое вы рисуете, центрировано, но из-за последовательного нарисованного кольца это не похоже. Поэтому вы можете использовать Mouse Pressed Event для рисования или заполнения овала на каждом клике.

onMousePressed(Event e) 
{ 
    Graphics g= getGraphics(); 
    g.fillOval(e.getX(),e.getY(),size,size); 

} 

Просто наблюдайте и пробуйте ... свою собственную логику.

0

Как вы знаете, эллипс нарисован внутри ограничивающего прямоугольника, вы можете использовать что-то вроде этого. Это для 7 концентрических кругов. Вы можете настроить расстояние, решить, растут ли они концентрические круги или уменьшаются концентрические круги, количество кругов, изменяя для цикла условий.

import java.awt.*;; 
import java.applet.*; 

/* 
<applet code="Ellipses" width=400 height=400> 
</applet> 
*/ 

public class Ellipses extends Applet 
{ 
    public void paint(Graphics g) 
    { 
     int i,j,k,l; 
     for(i=170,j=170,k=50,l=50;i>=110;i-=10,j-=10,k+=20,l+=20) 
     g.drawOval(i,j,k,l); 
    } 
} 
Смежные вопросы