drawLine in eine Schleife packen

bob651

Aktives Mitglied
Hallo,
könnt ihr mir sagen, wo ich hier einen Fehler mache?
Code:
int x1=120;
                 int y1=130 ;
                 int x2=200;
                 int y2=65;
                 for(int i=0;i<2;i++){
                
                 g.drawLine(x1,y1,x2,y2);
                 x1=x1+200;
                 y1=y1+40;

Eine linie geht rechts schräg nach oben, dann soll sie von da aus schräg nach unten gehen, macht sie, aber iwie zu lang.
Muss ich nicht x2 und y2 um 80 und 65 erhöhen? klappt iwie net. aiaiaa

Bleibe bei sowas hängen gibts nichts.
 
1. durchlauf:
linie(120, 13, 200, 65)

2. durchlauf
linie(320, 53, 200, 65)

Du hast also 3 Punkte:
A(120, 13), B(200, 65), C(320, 53)
Linie von A->B:
x erhöht sich um 80 und y erhöht sich um 65
Linie von B->C:
x erhöht sich um 200 und y verringert sich um 12

Wenn die Linie auf der X-Achse aber gleich lang sein soll, muss sich das x auch gleich ändern.
Wenn die Linie auf der Y-Achse genau soviel steigen wie fallen soll, dann muss die Änderung auch entgegengesetzt sein.
 
@Rubber, ja bin plöhd, habs jetzt hinbekommen:
Code:
int x1=0;
                 int y1=130 ;
                 int x2=150;
                 int y2=60;

                 g.drawLine(x1,y1,x2,y2);
                
                 for (int i=0; i<5; i++){
                 x1=0+x2;
                 y1=0+y2;
                
                 x2=x2+150;
                 y2=y2+60;
                
                 g.drawLine(x1,y1,x2,y2);
                
                 x1=0+x2;
                 y1=0+y2;
                
                 x2=x2+150;
                 y2=y2-60;
                 g.drawLine(x1,y1,x2,y2);

kann man bestimmt eleganter lösen, was solls. thx
 

Zurück
Oben