AWT de Java | Elipse2D

La clase Ellipse2D está presente en el paquete java.awt.geom y se usa para definir una elipse indicando su rectángulo de marco. Esta clase es solo la superclase abstracta para todos los objetos que almacenan una elipse 2D.

  • Ellipse2D.Double define una elipse con doble precisión.
  • Ellipse2D.Float define una elipse con precisión flotante.

Los constructores de la clase son:

  1. Ellipse2D.Double() : crea una elipse en la ubicación 0, 0 y tamaño 0, 0.
  2. Ellipse2D.Double(doble x, doble y, doble w, doble h) : crea una elipse en la ubicación x, y y ancho w y alto h.
  3. Ellipse2D.Float() : crea una elipse en la ubicación 0, 0 y tamaño 0, 0.
  4. Ellipse2D.Float(Float x, Float y, Float w, Float h) : crea una elipse en la ubicación x, y y ancho w y alto h.

Métodos comúnmente utilizados :

método explicación
contiene (doble x, doble y) devuelve si el punto está dentro de la elipse o no
contiene(doble x, doble y, doble w, doble h) devuelve si el rectángulo está dentro de la elipse o no
es igual a (Objeto o) Determina si el Objeto especificado es o no igual a esta Elipse2D.
interseca(doble x, doble y, doble w, doble h) devuelve si el rectángulo se cruza con la elipse o no
setFrame(doble x, doble y, doble w, doble h) Establece la ubicación y el tamaño del rectángulo de marco de esta Forma en los valores rectangulares especificados.

Los siguientes programas ilustran la clase Ellipse2D:

  1. Programa Java para crear dos elipses y dibujarlas en un applet de Java : Para crear una forma de elipse en el applet de Java, inicializaremos los objetos de clase Ellipse2d llamados «ed» y «ed1». Los 4 parámetros pasados ​​en el constructor del objeto «ed» son la coordenada X de la esquina superior izquierda del rectángulo de encuadre, la coordenada Y de la esquina superior izquierda del rectángulo de encuadre, el ancho del rectángulo de encuadre y el altura del rectángulo de encuadre. En el constructor de «ed», no pasamos nada, lo que significa que la elipse se inicializa en la ubicación (0, 0) y el tamaño (0, 0). Para mostrarlos en pantalla, creamos un objeto de la clase Graphics2d «g1» y llamamos al método g1.draw().

    // java program to create two ellipse and 
    // draw them to a java applet
    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    public class solve1 extends JApplet {
        public void init()
        {
            setSize(300, 300);
        }
      
        // paint the applet
        public void paint(Graphics g)
        {
            // create a ellipse2d
            Ellipse2D ed = new Ellipse2D.Double(100.0d, 100.0d, 
                                                 120.0d, 80.0d);
      
            // create another ellipse2d
            Ellipse2D ed1 = new Ellipse2D.Double();
      
            // set framing rectangle of ellipse
            ed1.setFrame(100.0d, 100.0d, 80.0d, 120.0d);
      
            Graphics2D g1 = (Graphics2D)g;
      
            g1.setColor(Color.red);
      
            // draw the first ellipse
            g1.draw(ed);
      
            g1.setColor(Color.blue);
      
            // draw the first ellipse
            g1.draw(ed1);
        }
    }

    Producción:

  2. Programa Java para crear dos elipses y verificar si un punto o un rectángulo está contenido en esa elipse o intersecado por ella : Para verificar si un punto o un rectángulo está contenido en esa elipse o intersecado por las 2 elipses, primero creamos las 2 elipses de la misma manera que creamos anteriormente. Luego creamos 2 rectángulos llamando al método drawRect() en el objeto Graphics2d «g1». Los parámetros en el método drawRect() especifican la coordenada x del rectángulo a dibujar, la coordenada y del rectángulo a dibujar, el ancho del rectángulo a dibujar y la altura del rectángulo a dibujar. Para verificar si lo contienen o no, llamamos al método ed.contains() y pasamos la coordenada del punto o rectángulo en él, y mostramos los resultados en un cuadro de diálogo de mensaje.

    // java program to create two ellipse and check whether
    // a point or a rectangle is contained in that ellipse
    // or intersected by it
    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    public class solve2 extends JApplet {
        public void init()
        {
            setSize(300, 300);
        }
      
        // paint the applet
        public void paint(Graphics g)
        {
            // create a ellipse2d
            Ellipse2D ed = new Ellipse2D.Double(100.0d, 100.0d,
                                                 120.0d, 80.0d);
      
            // create another ellipse2d
            Ellipse2D ed1 = new Ellipse2D.Double();
      
            // set framing rectangle of ellipse
            ed1.setFrame(100.0d, 100.0d, 80.0d, 120.0d);
      
            Graphics2D g1 = (Graphics2D)g;
      
            g1.setColor(Color.red);
      
            // draw the first ellipse
            g1.draw(ed);
      
            g1.setColor(Color.blue);
      
            // draw the first ellipse
            g1.draw(ed1);
      
            g1.setColor(Color.black);
      
            // draw a rectangle
            g.drawRect(100, 100, 80, 100);
      
            g1.setColor(Color.orange);
      
            // draw a rectangle
            g.drawRect(150, 150, 10, 10);
      
            // does it contain point
            JOptionPane.showMessageDialog(this, "ellipse 1 contains point 150, 150  " 
                                                            + ed.contains(150, 150));
      
            // does it contain rectangle
            JOptionPane.showMessageDialog(this, "ellipse 1 contains rectangle at" +
            "  150, 150 of width 10 and height 10 " + ed.contains(150, 150, 10, 10));
      
            // does it contain rectangle
            JOptionPane.showMessageDialog(this, "ellipse 1 contains rectangle at "+
             " 150, 150 of width 80 and height 100 " + ed.contains(150, 150, 80, 100));
      
            // does it  intersect rectangle
            JOptionPane.showMessageDialog(this, "ellipse 1 intersect rectangle at "+
            " 150, 150 of width 80 and height 100 " + ed.intersects(150, 150, 80, 100));
        }
    }

    Producción:

Nota : es posible que los programas anteriores no se ejecuten en un IDE en línea; utilice un compilador sin conexión.

Referencia: https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Ellipse2D.html

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *