2013-11-28 23 views
0

我是Java新手。我正在一個小程序中創建一個粗大的環。我在for循環中使用drawOval方法。這會創建多個環,但不居中。請檢查圖像,儘快幫助我!如何使用drawOval()創建戒指?

non-centered rings

+0

1)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 2)爲什麼編寫一個小程序?如果這是由於規格。由老師,請參考[爲什麼CS老師應該停止教Java applets](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 =再次 – zaingz

0

在這裏,您繪製的每個環都居中,但由於連續繪製的環似乎不是。因此,您可以使用鼠標按下事件在每次單擊時繪製或填充橢圓。

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

} 

只是觀察者和嘗試....你自己的邏輯。

0

如您所知,繪製的橢圓在邊界矩形內,您可以使用類似這樣的東西。這是7個同心圓。您可以自定義距離,決定它們是否正在增長同心圓或收縮同心圓,通過更改for循環條件的圓圈數量。

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); 
    } 
}