Package Dibujables.GeometriaDibujable

Source Code of Dibujables.GeometriaDibujable.Curva1Dibujable

/*
    Copyright(c) 2006 David Armenteros Escabias
   
    This file is part of PaintMultimedia.

    PaintMultimedia is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/



package Dibujables.GeometriaDibujable;

import java.awt.Point;
import java.awt.Graphics2D;
import java.awt.Graphics;
import java.awt.geom.QuadCurve2D;
import java.awt.geom.AffineTransform;

/**
* <p>Title: PaintMultimedia</p>
*
* <p>Description: Aplicacion que permite realizar dibujos, mostrar imagenes de
* diferentes formatos y reproducir sonido y video</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author David Armenteros Escabias
* @version 1.0
*/
public class Curva1Dibujable extends LineaDibujable {

    /**
     * Variable que almacena el punto de control de la curva
     */
    Point ptoControl;

    /**
     * Construye una curva con inicio, fin y punto de control en el punto (0,0)
     */
    public Curva1Dibujable() {
        super();
        ptoControl = new Point();
    }

    /**
     * Construye una curva con el origen y el final indicados en los parametros
     * si no son null, en cuyo caso se establecera el punto por defecto que es
     * (0,0). El punto de control se establece por defecto en el origen de la
     * curva
     *
     * @param origen Point punto de origen de la curva
     * @param puntoFinal Point punto final de la curva
     */
    public Curva1Dibujable(Point origen, Point puntoFinal) {
        this(origen, origen, puntoFinal, null);
    }

    /**
     * Construye una curva con el origen y el final indicados en los parametros
     * si no son null, en cuyo caso se establecera el punto por defecto que es
     * (0,0). El punto de control se establece por defecto en el origen de la
     * curva. Se establece un contexto grafico
     * si el parametro no es null, si no se establece el de por defecto.
     *
     * @param origen Point punto de origen de la curva
     * @param puntoFinal Point punto final de la curva
     * @param cg ContextoGrafico de la curva
     */
    public Curva1Dibujable(Point origen, Point puntoFinal, ContextoGrafico cg) {
        this(origen, origen, puntoFinal, cg);
    }

    /**
     * Construye una curva con el origen y el final indicados en los parametros
     * si no son null, en cuyo caso se establecera el punto por defecto que es
     * (0,0). El punto de control es el indicado por el parametro si no es null
     * en cuyo caso pasaria a ser el origen. Se establece un contexto grafico
     * si el parametro no es null, si no se establece el de por defecto.
     *
     * @param origen Point punto de origen de la curva
     * @param puntoControl Point punto de control de la curva
     * @param puntoFinal Point punto final de la curva
     * @param cg ContextoGrafico de la curva
     */
    public Curva1Dibujable(Point origen, Point puntoControl, Point puntoFinal, ContextoGrafico cg) {
        super(origen, puntoFinal, cg);

        if (this.ptoControl != null) {
            this.ptoControl = puntoControl;
        } else {
            this.ptoControl = new Point(this.puntoInicial);
        }
    }

    /**
     * Implementacion del metodo abstracto de la clase padre. Dibuja la figura
     * en el grafico pasado como parametro.
     *
     * @param g Graphics donde se desea dibujar la figura.
     */
    @Override
    public void dibujar(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        //Variable que nos sirve para reestablecer la forma original posteriormente
        AffineTransform actual = g2.getTransform();

        //Aplicamos la transformacion del objeto si la tiene
        if (!this.transformaciones.isIdentity()) {
            g2.transform(this.transformaciones);
        }

        QuadCurve2D quad = new QuadCurve2D.Double(this.puntoInicial.x, this.puntoInicial.y, this.ptoControl.x, this.ptoControl.y, this.puntoFinal.x, this.puntoFinal.y);

        g2.setStroke(this.cg.getEstiloLinea());

        //Dibujamos la linea
        g2.setColor(this.cg.getColorLinea());
        g2.draw(quad);

        //Recuperamos la forma original que tenia antes de la transformacion
        g2.setTransform(actual);
    }

    /**
     * Sobreescribe el metodo del padre para mover la figura
     *
     * @param p Point punto de origen al que se quiere mover la curva
     */
    @Override
    public void mover(Point p) {
        if (p != null) {
            //Movemos el punto de control
            this.ptoControl.translate(p.x - this.puntoInicial.x,
                    p.y - this.puntoInicial.y);

            //Movemos los extremos
            super.mover(p);
        }
    }

    /**
     * Obtiene el punto de control de la curva
     *
     * @return Point punto de control de la curva
     */
    public Point getPuntoControl() {
        return this.ptoControl;
    }

    /**
     * Establece el punto de control de la curva si no es null.
     *
     * @param puntoControl Point nuevo punto de control de la curva
     */
    public void setPuntoControl(Point puntoControl) {
        if (puntoControl != null) {
            this.ptoControl = puntoControl;
        }
    }
}
TOP

Related Classes of Dibujables.GeometriaDibujable.Curva1Dibujable

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.