viele Kreise zeichnen

gomagu50

Grünschnabel
Guten Tag, könnte mir bitte jemand sagen, wie ich den Programmcode noch besser
schreiben kann

Ich komme hier nicht wirklich weiter. Wie kann ich eine aus vielen Kreisen eine zusammengesetzte Röhre zeichnen.
Die Klasse Kreis habe ich schon programmiert.

Hier der von mir erstellte Code:

Code:
import java.awt.*;
import java.applet.*;
import java.awt.Graphics;

public class vieleKreise1 extends java.applet.Applet
{
	Kreis kreis0;
	Kreis kreis1;
	Kreis kreis2;
	Kreis kreis3;
	Kreis kreis4;
	Kreis kreis5;
	Kreis kreis6;
	
	public static void main(String[] args)
	{	
		int i;
		for(i = 1; i <= 30; i++);	
	}	
	public void init()	
	{
        kreis0 = new Kreis(120,120,60); 
        kreis1 = new Kreis(140,140,62); 
        kreis2 = new Kreis(160,160,64);
        kreis3 = new Kreis(180,180,66); 
        kreis4 = new Kreis(200,200,68); 
        kreis5 = new Kreis(220,220,70);
        kreis6 = new Kreis(240,240,72);
	}
	public void paint(Graphics g)
	{
		kreis0.zeichne(g);
		kreis1.zeichne(g);
		kreis2.zeichne(g);
		kreis3.zeichne(g);
		kreis4.zeichne(g);
		kreis5.zeichne(g);
		kreis6.zeichne(g);	      
	}
}

:confused:
Ich würde mich sehr über Eure Hilfe freuen.

Gruß und Dank
gomagu50
 
Sorry, ich hatte nicht daran gedacht, die Klasse Kreis auch einzufügen.

Code:
/* Die Klasse Kreis  */
   
public class Kreis extends Object 
{
	public int x; 
	public int y; 
	public int radius; 
	public final double PI = 3.14159;
	public static int kreisZaehler = 0; 

	public Kreis () 
	{ 
        this(0, 0, 100); 
	} 
 	public Kreis (int x, int y, int radius) 
 	{ 
        this.x= x; 
        this.y= y; 
        this.radius = radius; 
        kreisZaehler++;
 	}
 	public int getX() 
 	{
 		return x;
 	}
 	public int getY()
 	{
 		return y;
 	}
 	public int getRadius()
 	{
 		return radius;
 	}
 	public double getFlaeche()
 	{
 		return radius * radius * PI;
 	}
 	public double getUmfang()
 	{
 		return 2 * radius * PI;
 	}	
 	public void  bewege(int deltaX, int deltaY) 
 	{ 
        x += deltaX; 
        y += deltaY; 
 	} 
 	public void skaliere (int deltaRadius) 
 	{ 
        radius += deltaRadius; 
 	} 
	public void zeichne(java.awt.Graphics g) 
	{ 
        g.drawOval(x-radius, y-radius, 2 * radius, 2*radius); 
	} 
}
 
Du könntest statt drawOval fillOval benutzen. Aber richtig gut sieht das so auch nicht aus.
 
Hallo,
nicht die Klasse Kreis ist mein Problem, sondern das Applet von
public class vieleKreise1 extends java.applet.Applet.

Ich möchte wissen, wie ich den Code verändern muss, um eine Röhre oder einen
Schlauch (Beispiel Röhre siehe Code) auf einfachere Weise mit Java zeichnen kann, denn ich meine der Code sieht für mich unschön aus und ist einfach nur umständlich.
Evtl. mit einer for-Schleife, aber wie (dabei ist zu beachten,das die Methode der Klasse
"Kreis" genutzt wird)

Für eine Antwort wäre ich sehr dankbar.

Viele Grüße
gugoma50:confused:
 
Du könntest die Kreis-Objekte in eine Array oder eine Liste schreiben und dann darüber mit einer for-Schleife iterieren.
 
Das initialisieren kannst du auch über ne schleife lösen. Definierst du 3 Konstanten DELTA_X, DELTA_Y und DELTA_R (Verschiebung und Änderung des Radius), speicherst aktuelle Position und aktuellen Radius und initialisierst das ganze dann, wie Zeja schon gesagt hat, in eine Liste oder ein Array.
Was soll die Schleife in der main eigentlich bewirken?

Grüße
Daniel
 
Danke für die Antworten,
aber leider bin ich nur ein Anfänger und komme damit nicht klar. Könntet Ihr mir schreiben wie das geht?

Vielen dank
gomagu50 :confused:
 
Hallo,

habe mal was probiert. Daszählen klappt, aber Zeichnen nicht, was habe ich falsch
gemacht

Hier der Code:
Code:
import java.awt.*;
import java.applet.*;
import java.awt.Graphics;

public class vieleKreise2 extends java.applet.Applet
{	
	public static void main(String[] args) 
	{
		int kr = 50;
    	        Kreis[] kreis = new Kreis[kr];
		for(int i=0; i<kr; i++)
                {
    	            kreis[i] = new Kreis(100,100,50);
                }
  
	//System.out.println(Kreis.kreisZaehler+"Kreisobjekte erzeugt");	
	
	public void paint (java.awt.Graphics g) 
	{
			kreis.zeichne(g);
	}
}
}


Wäre für eine Hilfe dankbar.

Viele rüße
gomagu50 :confused:
 
Zurück