This commit is contained in:
Jan 2019-06-21 17:36:07 +02:00
parent e364563011
commit 1ff7335f8d
7 changed files with 123 additions and 90 deletions

View File

@ -9,13 +9,15 @@ import garten.view.Fenster;
import garten.view.FlaecheBeet;
import garten.view.FlaechePflanzen;
import garten.view.FlaecheWeg;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
/**
*
* @author Jan
*/
public class Gaertner
public class Gaertner implements MouseListener
{
private Garten meinGarten;
private Fenster fenster;
@ -25,15 +27,17 @@ public class Gaertner
private ArrayList<Pflanze> pflanzen;
private ArrayList<Beet> beete;
Pflanze1 pfl;
Pflanze1 pfl2;
Pflanze1 pfl1;
Pflanze2 pfl2;
Pflanze3 pfl3;
int height;
int width;
int[] randomwertex;
int[] randomwertey;
public Gaertner(Fenster fenster, FlaecheBeet flbeet, FlaecheWeg flweg,FlaechePflanzen flpfl)
public Gaertner(Fenster fenster, FlaecheBeet flbeet, FlaecheWeg flweg,
FlaechePflanzen flpfl)
{
meinGarten = new Garten(flbeet, flweg, flpfl);
this.fenster = fenster; //Zur späteren Steuerung Pop up usw.
@ -75,53 +79,34 @@ public class Gaertner
meinGarten.zeichneWeg();
meinGarten.zeichneBeete();
beete = meinGarten.getBeete();
for(Beet b : beete)
{
Boolean bepflanzung = true;
Boolean versetzt = true;
int[] temp = b.getKoordinaten();
int tempx = temp[0]+20;
int tempy = temp[1]+40;
int tempxrand = temp [2];
int tempyrand = temp [3];
do
{
System.out.println("Test");
pfl = new Pflanze1(tempx,tempy,3);
meinGarten.hinzufuegenPflanze(pfl);
tempx = tempx +50;
if(tempx > tempxrand -10)
{
if(versetzt)
{
tempx = temp[0]+40;
versetzt = false;
}
else
{
tempx = temp[0]+20;
versetzt = true;
}
tempy = tempy+60;
}
if(tempy > tempyrand -10)
{
bepflanzung = false;
}
}
while (bepflanzung);
break; //Da bei gesamten zu viel Rechenaufwand :( müssen die wirklich einzelen auswählen
// gibt noch Verbesserungen beim zeichnen aber mach ich später ;)
}
meinGarten.randomBepflanzung();
meinGarten.zeichnePflanzen();
}
/*
public Pflanze getPflanze(int x,int y)
{
return meinGarten.naechstePflanze(x,y);
}*/
}
@Override
public void mouseClicked(MouseEvent e)
{
}
@Override
public void mousePressed(MouseEvent e)
{
}
@Override
public void mouseReleased(MouseEvent e)
{
}
@Override
public void mouseEntered(MouseEvent e)
{
}
@Override
public void mouseExited(MouseEvent e)
{
}
}

View File

@ -19,6 +19,11 @@ public class Garten extends Kompositum
private ArrayList<Weg> wege;
private ArrayList<Beet> beete;
private ArrayList<Pflanze> pflanzen;
private Pflanze1 pfl1;
private Pflanze2 pfl2;
private Pflanze3 pfl3;
FlaecheBeet flbeet;
FlaecheWeg flweg;
FlaechePflanzen flpfl;
@ -66,6 +71,68 @@ public class Garten extends Kompositum
{
flpfl.setPflanzen(pflanzen);
}
public void randomBepflanzung()
{
for (Beet b : beete)
{
int randomAlter = (int) (Math.random() * 3 + 1);
int randomTyp = (int) (Math.random() * 3 + 1);
Boolean bepflanzung = true;
Boolean versetzt = true;
int[] temp = b.getKoordinaten();
int tempx = temp[0]+10;
int tempy = temp[1]+20;
int tempxrand = temp[2] + temp[0];
int tempyrand = temp[3] + temp[1];
int deltax = (temp[2]-40)/((temp[2]-40)/40);
int deltay = (temp[3]-40)/((temp[3]-40)/50);
System.out.println("Rand y" + tempyrand);
do
{
if (randomTyp == 1)
{
pfl1 = new Pflanze1(tempx, tempy, randomAlter);
hinzufuegenPflanze(pfl1);
}
else if (randomTyp == 2)
{
pfl2 = new Pflanze2(tempx, tempy, randomAlter);
hinzufuegenPflanze(pfl2);
}
else if (randomTyp == 3)
{
pfl3 = new Pflanze3(tempx, tempy, randomAlter);
hinzufuegenPflanze(pfl3);
}
tempx += deltax;
if (tempx > tempxrand )
{
if (versetzt)
{
tempx = temp[0] +30;
versetzt = false;
}
else
{
tempx = temp[0]+20;
versetzt = true;
}
System.out.println(tempy);
tempy += deltay;
}
if (tempy > tempyrand)
{
bepflanzung = false;
}
}
while (bepflanzung);
}
}
/*
public Pflanze naechstePflanze(int x, int y)
{

View File

@ -30,6 +30,5 @@ class Pflanze1 extends PflanzeImpl
grammar.addRule('F',"F[-F]F", (float) 0.45);
grammar.generateGrammar(generations);
drawLength =(float) (startLength * Math.pow(0.7, (double) generations));
}
}

View File

@ -9,7 +9,6 @@ package garten.model;
*
* @author Jan
*/
import java.awt.BasicStroke;
import java.text.CharacterIterator;
import java.util.ArrayList;
import javax.swing.JComponent;
@ -37,8 +36,6 @@ public class PflanzeImpl extends JComponent implements Pflanze
protected int flaeche;
//Position();
TurtleStack ts;
//public Line2D.Float Gerade;
private BasicStroke pinsel;
public PflanzeImpl(int Xstart, int Ystart, int Generation)
{
@ -46,10 +43,7 @@ public class PflanzeImpl extends JComponent implements Pflanze
positiony = Ystart;
generations = Generation;
pts = new ArrayList<float[]>();
ts = new TurtleStack(); //PApplet
pinsel = new BasicStroke(2f);
//Gerade = new Line2D.Float();
ts = new TurtleStack();
}
public void translateRules()
@ -91,18 +85,6 @@ public class PflanzeImpl extends JComponent implements Pflanze
}
}
/*
public void draw()
{
Graphics2D g3 = (Graphics2D) this.getGraphics();
for (float[] pt : pts)
{
g3.draw(new Line2D.Float(pt[0], pt[1], pt[2], pt[3]));
}
g3.dispose();
}
*/
public ArrayList<float[]> getPoints()
{
return pts;