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:
- Ellipse2D.Double() : crea una elipse en la ubicación 0, 0 y tamaño 0, 0.
- 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.
- Ellipse2D.Float() : crea una elipse en la ubicación 0, 0 y tamaño 0, 0.
- 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:
- 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:
- 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