import inf.v3d.obj.Line;
import inf.v3d.view.Viewer;
import inf.v3d.view.ViewerPanel;
public class ParkplatzTest {
public void parkplatz_zeichnen (){
ViewerPanel viewer = new ViewerPanel();
viewer.setVisible(true);
// Rechteck Parkplatz erzeugen und zeichnen
Parkplatz a = new Parkplatz(192, 50, 0, 0);
double start_x = a.getStart_x();
double start_y = a.getStart_y();
double laenge = a.getLaenge();
double breite = a.getBreite();
Rectangle parkplatz = new Rectangle(start_x, start_y, laenge, breite);
parkplatz.draw("black", viewer);
Fahrspur f = new Fahrspur(a.getBreite(), 6);
Parkbox p = new Parkbox(5, 2.5, 0, 0, 0);
Blumenbeet b = new Blumenbeet(a.getBreite(), 0.8);
// Line linie = new Line();
// Anzahl der Parkboxen je Reihe und Anzahl der Bloecke ermitteln
// ein Block besteht aus einer Reihe + einer Fahrspur + einer Reihe
Generator g = new Generator();
double AnzahlPlaetze = g.berechneAnzahlderParkplaetzeEinerParkreihe(a,
p) - f.getBreite();
double AnzahlParkbloecke = g.berechneAnzahlVonParkbloecken(a, p, f, b);
System.out.print(AnzahlPlaetze);
System.out.print(AnzahlParkbloecke);
double xBaeume = p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
double xFahrspur = a.getStart_x() + p.getLaenge();
double y1 = f.getBreite();
Rectangle einfahrt = new Rectangle(p.getLaenge(), y1, f.getBreite(),
-20);
einfahrt.draw("black", viewer);
// Punkte der Linien von Parkbox 1
// Linie 1
double px1 = a.getStart_x();
double py1 = a.getStart_y() + f.getBreite();
double pz1 = 0;
double px2 = a.getStart_x();
double py2 = a.getStart_y() + f.getBreite() + p.getBreite();
double pz2 = 0;
// Linie 2
double qx1 = px1;
double qy1 = py1;
double qz1 = pz1;
double qx2 = a.getStart_x() + p.getLaenge();
double qy2 = a.getStart_y() + f.getBreite()
+ (Math.tan(p.getAlpha()) * p.getLaenge());
double qz2 = 0;
// Linie 3
double rx1 = px2;
double ry1 = py2;
double rz1 = pz2;
double rx2 = a.getStart_x() + p.getLaenge();
double ry2 = a.getStart_y() + p.getBreite() + f.getBreite()
+ (Math.tan(p.getAlpha()) * p.getLaenge());
double rz2 = 0;
// Punkte der Linien von Parkbox 2
// Linie 1
double px3 = a.getStart_x() + 2 * p.getLaenge() + f.getBreite();
double py3 = a.getStart_y() + f.getBreite();
double pz3 = 0;
double px4 = a.getStart_x() + 2 * p.getLaenge() + f.getBreite();
double py4 = a.getStart_y() + p.getBreite() + f.getBreite();
double pz4 = 0;
// Linie 2
double qx3 = px3;
double qy3 = py3;
double qz3 = pz3;
double qx4 = a.getStart_x() + f.getBreite() + p.getLaenge()
+ (Math.tan(p.getAlpha()) * p.getLaenge());
double qy4 = a.getStart_y() + f.getBreite();
double qz4 = 0;
// Linie 3
double rx3 = px4;
double ry3 = py4;
double rz3 = pz4;
double rx4 = a.getStart_x() + f.getBreite() + p.getLaenge()
+ (Math.tan(p.getAlpha()) * p.getLaenge());
double ry4 = a.getStart_y() + f.getBreite() + p.getBreite();
double rz4 = 0;
// äußere for-Schleife
for (int i = 0; i < AnzahlParkbloecke; i++) {
// innere for-Schleife
for (int j = 0; j < AnzahlPlaetze; j++) {
Line l1_parkbox1 = new Line(px1, py1, pz1, px1, py2, pz2);
Line l2_parkbox1 = new Line(qx1, qy1, qz1, qx2, qy2, qz2);
Line l3_parkbox1 = new Line(rx1, ry1, rz1, rx2, ry2, rz2);
viewer.addObject3D(l1_parkbox1);
viewer.addObject3D(l2_parkbox1);
viewer.addObject3D(l3_parkbox1);
viewer.setVisible(true);
// damit Fahrspur nicht aus einzelnen Boxen besteht, sondern
// durchgaengig ist
if (j == AnzahlPlaetze - 1) {
Rectangle fahrspur = new Rectangle(xFahrspur,
a.getStart_y() + f.getBreite(), f.getBreite(),
f.getLaenge() - 2 * f.getBreite());
fahrspur.draw("red", viewer);
}
Line l1_parkbox2 = new Line(px3, py3, pz3, px4, py4, pz4);
Line l2_parkbox2 = new Line(qx3, qy3, qz3, qx4, qy4, qz4);
Line l3_parkbox2 = new Line(rx3, ry3, rz3, rx4, ry4, rz4);
viewer.addObject3D(l1_parkbox2);
viewer.addObject3D(l2_parkbox2);
viewer.addObject3D(l3_parkbox2);
viewer.setVisible(true);
if (j == AnzahlPlaetze - 1) {
// damit die letzte Baumreihe wegfaellt
if (i != AnzahlParkbloecke - 1) {
Rectangle baeume = new Rectangle(xBaeume,
a.getStart_y() + f.getBreite(), b.getLaenge(),
b.getBreite() - 2 * f.getBreite());
baeume.draw("yellow", viewer);
}
}
// neuer Startpunkt für y
// für Line
py1 = py1 + p.getBreite();
py2 = py2 + p.getBreite();
qy1 = qy1 + p.getBreite();
qy2 = qy2 + p.getBreite();
ry1 = ry1 + p.getBreite();
ry2 = ry2 + p.getBreite();
py3 = py3 + p.getBreite();
py4 = py4 + p.getBreite();
qy3 = qy3 + p.getBreite();
qy4 = qy4 + p.getBreite();
ry3 = ry3 + p.getBreite();
ry4 = ry4 + p.getBreite();
}
//Verschiebung in y-Richtung verhindern
//neuen y-Werte auf die alten zurueck setzen
py1 = a.getStart_y() + f.getBreite();
py2 = a.getStart_y() + f.getBreite();
qy1 = a.getStart_y() + f.getBreite();
qy2 = a.getStart_y() + f.getBreite();
ry1 = a.getStart_y() + f.getBreite();
ry2 = a.getStart_y() + f.getBreite();
py3 = a.getStart_y() + f.getBreite();
py4 = a.getStart_y() + f.getBreite();
qy3 = a.getStart_y() + f.getBreite();
qy4 = a.getStart_y() + f.getBreite();
ry3 = a.getStart_y() + f.getBreite();
ry4 = a.getStart_y() + f.getBreite();
// Verschiebungen in x-Richtung
// der Line Elemente
px1 = px1 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
px2 = px2 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
qx1 = qx1 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
qx2 = qx2 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
rx1 = rx1 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
rx2 = rx2 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
px3 = px3 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
px4 = px4 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
qx3 = qx3 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
qx4 = qx4 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
rx3 = rx3 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
rx4 = rx4 + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
// der Rectangle Elemente
xBaeume = xBaeume + p.getLaenge() + f.getBreite() + p.getLaenge()
+ b.getLaenge();
xFahrspur = xFahrspur + p.getLaenge() + f.getBreite()
+ p.getLaenge() + b.getLaenge();
}
}
public double laenge2;
public void uebergabe (double laenge2, double breite){
//System.out.println(laenge2);
this.laenge2 = laenge2;
}
}