Package fmg.fmg8.graphVis.zeichenModi

Source Code of fmg.fmg8.graphVis.zeichenModi.Rechteck2D

/*
* Dateiname:        Rechteck2D.java
* Autor(en):        Lukas K�nig
* Java-Version:     6.0
* Letzte Aenderung: 19.12.2008
*
* (c) Lukas K�nig, die Datei unterliegt der LGPL
* -> http://www.gnu.de/lgpl-ger.html
*/

package fmg.fmg8.graphVis.zeichenModi;

import fmg.fmg8.umgebung2D.Vektor2D;

/**
* @author Lukas K�nig
*/
public class Rechteck2D {

    /**
     * Eckpunktkoordinate.
     */
    private double x1;
   
    /**
     * Eckpunktkoordinate.
     */
    private double y1;
   
    /**
     * Eckpunktkoordinate.
     */
    private double x2;
   
    /**
     * Eckpunktkoordinate.
     */
    private double y2;
   
    /**
     * Eckpunkt.
     */
    private Vektor2D linksOben;
   
    /**
     * Eckpunkt.
     */
    private Vektor2D rechtsUnten;
   
    /**
     * Konstruktor.
     *
     * @param v1  Vektor f�r linke obere Ecke.
     * @param v2  Vektor f�r rechte untere Ecke.
     */
    public Rechteck2D(final Vektor2D v1, final Vektor2D v2) {
        this.linksOben = new Vektor2D(Vektor2D.NULL_VEKTOR);
        this.rechtsUnten = new Vektor2D(Vektor2D.NULL_VEKTOR);
        this.set(v1, v2);
    }
   
    /**
     * Verschiebt das Rechteck um den angegebenen Vektor.
     *
     * @param vek  Der Verschiebevektor.
     */
    public void verschiebe(final Vektor2D vek) {
        this.linksOben.add(vek);
        this.rechtsUnten.add(vek);
        this.x1 += vek.x;
        this.x2 += vek.x;
        this.y1 += vek.y;
        this.y2 += vek.y;
    }
   
    /**
     * Setze Rechteckkoordinaten.
     *
     * @param v1  Vektor f�r eine Ecke.
     * @param v2  Vektor f�r die andere Ecke.
     */
    public void set(final Vektor2D v1, final Vektor2D v2) {
        if (v1.x < v2.x) {
            this.x1 = v1.x;
            this.x2 = v2.x;
        } else {
            this.x1 = v2.x;
            this.x2 = v1.x;
        }
       
        if (v1.y < v2.y) {
            this.y1 = v1.y;
            this.y2 = v2.y;
        } else {
            this.y1 = v2.y;
            this.y2 = v1.y;
        }
       
        this.linksOben.x = x1;
        this.linksOben.y = y1;
        this.rechtsUnten.x = x2;
        this.rechtsUnten.y = y2;
    }
   
    /**
     * Setzt eine Seite des Rechtecks neu.
     *
     * @param xx1  Der zu setzende neue Wert.
     */
    public void setLinks(final double xx1) {
        this.set(new Vektor2D(xx1, this.y1), this.rechtsUnten);
    }
   
    /**
     * Setzt eine Seite des Rechtecks neu.
     *
     * @param xx2  Der zu setzende neue Wert.
     */
    public void setRechts(final double xx2) {
        this.set(this.linksOben, new Vektor2D(xx2, this.y2));
    }
   
    /**
     * Setzt eine Seite des Rechtecks neu.
     *
     * @param yy1  Der zu setzende neue Wert.
     */
    public void setOben(final double yy1) {
        this.set(new Vektor2D(this.x1, yy1), this.rechtsUnten);
    }
   
    /**
     * Setzt eine Seite des Rechtecks neu.
     *
     * @param yy2  Der zu setzende neue Wert.
     */
    public void setUnten(final double yy2) {
        this.set(this.linksOben, new Vektor2D(this.x2, yy2));
    }
   
    /**
     * @return  Die linke obere Ecke.
     */
    public Vektor2D liObEcke() {
        return this.linksOben;
    }

    /**
     * @return  Die rechte untere Ecke.
     */
    public Vektor2D getRechtUntEcke() {
        return this.rechtsUnten;
    }
   
    /**
     * @return  Die H�he.
     */
    public double getHoehe() {
        return y2 - y1;
    }

    /**
     * @return  Die Breite.
     */
    public double getBreite() {
        return x2 - x1;
    }
}
TOP

Related Classes of fmg.fmg8.graphVis.zeichenModi.Rechteck2D

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.