Pythagoras-Baum

Status
Nicht offen für weitere Antworten.
R

Rudi Rijkaard

Gast
hallo
ich hab ein kleines applet geschrieben, dass den pythagorasbaum rekursiv zeichnen soll
den code habe ich beigefügt
lieber gleich im voraus:ich bin noch blutiger java-anfänger
also nicht erschrecken, falls ein paar blöde fehler darin auftauchen
aber ich denke mal bis zur eigentlichen rekursion habe ich alles einigermaßen richtig gemacht
und zwar soll dann noch zusätzlich die farbe des quadrats in abhängigkeit der rekursionstiefe so variiert werden,dass die blätter des baumes immer grüner werden
ich hab das auch einigermaßen hinbekommen aber wenn ich das applet dann ausführe kommt manchmal die fehlermeldung(ebenfalls beigefügt), dass wohl anscheinend die zeile "farbebaum=new Color(80,tiefe*5,0);" fehlerhaft ist
wie kann ich diesen fehler am besten korrigieren?
sind zudem insbesondere die zeilen
Code:
if((tiefe==0) ||(laenge<2)){
	    g.drawLine(b-ax,h-ay,b-bx,h-by);
	}else{

drawTree(g,dx,dy,ex,ey,tiefe+1);
drawTree(g,ex,ey,cx,cy,tiefe+1);

richtig?
bitte um schnelle antwort


java.lang.IllegalArgumentException: Color parameter outside of expected range: Green
at java.awt.Color.testColorValueRange(Unknown Source)
at java.awt.Color.<init>(Unknown Source)
at java.awt.Color.<init>(Unknown Source)
at pythagoras.drawTree(pythagoras.java:23)
at pythagoras.drawTree(pythagoras.java:50)
at pythagoras.drawTree(pythagoras.java:51)
at pythagoras.paint(pythagoras.java:11)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.lang.IllegalArgumentException: Color parameter outside of expected range: Green
at java.awt.Color.testColorValueRange(Unknown Source)
at java.awt.Color.<init>(Unknown Source)
at java.awt.Color.<init>(Unknown Source)
at pythagoras.drawTree(pythagoras.java:23)
at pythagoras.drawTree(pythagoras.java:50)
usw.


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

public class pythagoras extends Applet {
		

	public void init(){
	}

	public void paint (Graphics g){
	    drawTree(g,50,100,150,100,20);
	}
    public void drawTree(Graphics g,int ax,int ay,int bx,int by, int tiefe){
        int abx=bx-ax;
	    int aby=by-ay;
	    double laenge=Math.sqrt(abx*abx+aby*aby);
	int b=getWidth()-100;
	int h=getHeight()-100;
	if((tiefe==0) ||(laenge<2)){
	    g.drawLine(b-ax,h-ay,b-bx,h-by);
	}else{
		Color farbebaum;
		farbebaum=new Color(80,tiefe*5,0);
		g.setColor(farbebaum);
		
    int bcx=aby;
    int bcy=-abx;
	int cx=bx-bcx;
	int cy=by-bcy;
	int dx=ax-bcx;
	int dy=ay-bcy;
	
    g.drawLine(b-ax,h-ay,b-bx,h-by);
	g.drawLine(b-bx,h-by,b-cx,h-cy);
	g.drawLine(b-ax,h-ay,b-dx,h-dy);
	g.drawLine(b-dx,h-dy,b-cx,h-cy);
	
	double r1=0.2;
	double r2=0.8;
    double r=(r1+Math.random()*(r2-r1));
	double dpx=r*abx;
	double dpy=r*aby;
	
	double PE=Math.sqrt(r*(1-r))*laenge;
	double einheitsvektorx=(1/laenge)*bcx;
	double einheitsvektory=(1/laenge)*bcy;
	int ex= (int) (dx+dpx-(PE*einheitsvektorx));
	int ey= (int) (dy+dpy-(PE*einheitsvektory));
	
    drawTree(g,dx,dy,ex,ey,tiefe+1);
	drawTree(g,ex,ey,cx,cy,tiefe+1);
	
	}}
	
}
 
B

bygones

Gast
naja - die range, die man bei farbwerten angeben kann ist 0-255. Du hast eine zahl die größer ist als 255, daher der Fehler
 
R

rudirijkaard

Gast
du meinst wohl die zeile : farbebaum=new Color(80,tiefe*5,0);
aber wieso wird der der grün-farbwert größer als 255
ich hab doch tiefe=20
da kann doch farbwert maximal den wert 20*5=100 annehmen oder hab ich da was komplett falsch verstanden?

gruß
rudi
 
G

Guest

Gast
Du kannst für jede Farbkomponente nur bis 255 gehen.
Ist die Rekursionstiefe > 50, dass ist "tiefe*5" > 255
Code:
public void drawTree(Graphics g,int ax,int ay,int bx,int by, int tiefe) {
  if(tiefe > 50)
    return;
  ...
}
 
G

Guest

Gast
also sollte ich die zeile

if((tiefe==0) ||(laenge<2)){

einfach durch

if(tiefe > 50) ||(laenge<2)){

ersetzen und dann sollte es funktionieren oder wie?[/code]
 
B

bygones

Gast
Anonymous hat gesagt.:
also sollte ich die zeile

if((tiefe==0) ||(laenge<2)){

einfach durch

if(tiefe > 50) ||(laenge<2)){

ersetzen und dann sollte es funktionieren oder wie?
weißt du wie man es am besten und schnellsten rausfinden...

man schreibt es in den code und lässt es mal laufen ?!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
D Satz des Pythagoras Java Basics - Anfänger-Themen 30
S Satz des Pythagoras Java Basics - Anfänger-Themen 9
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
G AVL-Baum Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Baum Java Basics - Anfänger-Themen 8
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Interface Baum visualisieren Java Basics - Anfänger-Themen 37
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
L Traversierungsverfahren Baum: LevelOrder Java Basics - Anfänger-Themen 17
L Rekursion im Baum Java Basics - Anfänger-Themen 9
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 4
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
R Baum erzeugen Java Basics - Anfänger-Themen 61
B Baum Traversierung Postorder Java Basics - Anfänger-Themen 6
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
A Voller Baum Java Basics - Anfänger-Themen 7
S n-ärer Baum Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
C kompletter baum Java Basics - Anfänger-Themen 2
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
M Baum Code kurze frage ... Java Basics - Anfänger-Themen 6
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
A min() Methode Baum Java Basics - Anfänger-Themen 1
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
Screen 2,4 Baum Frage Java Basics - Anfänger-Themen 6
T Rot-schwarz Baum Problem Java Basics - Anfänger-Themen 3
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
C 2-3 Baum Java Basics - Anfänger-Themen 6
H Baum Java Basics - Anfänger-Themen 4
L Rot Scharz Baum von Binärbaum erben Java Basics - Anfänger-Themen 9
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
L eigenen Baum schreiben Java Basics - Anfänger-Themen 5
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
S Das reinschreiben einer Klasse in den Baum Java Basics - Anfänger-Themen 6
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
A Baum mit geometricfigur Werte Java Basics - Anfänger-Themen 6
D Datentypen Einfügen im RotSchwarz Baum Java Basics - Anfänger-Themen 2
F FileSystem in Baum darstellen/wurzel festlegen Java Basics - Anfänger-Themen 3
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
I Baum graphisch darstellen Java Basics - Anfänger-Themen 2
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
L Baum Swing AVL Java Basics - Anfänger-Themen 4
Binary.Coder 2-3-4 Baum vs. (2,4) Baum Java Basics - Anfänger-Themen 2
ModellbahnerTT Ab-Baum Applet Java Basics - Anfänger-Themen 3
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
H Baum Java Basics - Anfänger-Themen 11
G AVL Baum Java Basics - Anfänger-Themen 20
J Baum spiegeln Java Basics - Anfänger-Themen 7
N 2-3 Baum, Einfügen Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
V Baum mit log n Aufwand für Einfügen und Löschen und. Java Basics - Anfänger-Themen 5
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
G universeller baum Java Basics - Anfänger-Themen 13
G Baum testen Java Basics - Anfänger-Themen 20
B Array To Baum Java Basics - Anfänger-Themen 2
B Baum to Array Java Basics - Anfänger-Themen 17
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
W Baum durchlaufen Java Basics - Anfänger-Themen 3
T binärer Baum Java Basics - Anfänger-Themen 3
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
P allg. Baum aus Liste Java Basics - Anfänger-Themen 2
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
R binärer Baum Java Basics - Anfänger-Themen 2
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben