Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bibliotecas geomtricas
! Carctersticas de una biblioteca geomtrica ! Ejemplos: CGAL, GeomLib, java.awt.geom ! La biblioteca java.awt.geom
Libreras Geomtricas
Libreras Geomtricas
Correcta
! La correccin se reere a conformidad con la especicacin. ! Una biblioteca es correcta cuando se comporta como est especicado.
Libreras Geomtricas
Libreras Geomtricas
Robusta
! Pequeos cambios en los datos de entrada no deben cambiar una solucin correcta ! Se deben tratar correctamente:
" Errores producidos por el redondeo " Casos degenerados
! Soluciones:
" Algoritmos ms elaborados " Aritmtica racional exacta
Flexible
! ! ! ! Modular Adaptable Extensible Abierta
Fcil de usar
! Uniforme en los nombres (de paquetes, clases, interfaces, constantes, parmetros, ) ! Mdulos completos y mnimos ! Funcionalidad completa y rica
Libreras Geomtricas
Libreras Geomtricas
Estructura de CGAL
La librera java.awt.geom
! En el paquete java.awt:
" Interfaz Shape " Clase Polygon
! En el paquete java.awt.geom:
" Interfaz PathIterator " Clases de utilidad matemtica (AfneTransform, Dimension2d) " Objetos geomtricos (Arc2D, CubicCurbe2D, Ellipse2D, Line2D, Point2D, QuadCurve2D, Rectangle2D, RoundRectangle2D) " Clase Area
Libreras Geomtricas
Libreras Geomtricas
10
Formas bsicas
line = new Line2D.Float(x1, y1, x2, y2); arc = new Arc2D.Float(x, y, w, h, start, extent, type); oval = new Ellipse2D.Float(x, y, w, h); rectangle = new Rectangle2D.Float(x, y, w, h); roundRectangle = new RoundRectangle2D.Float( x, y, w, h, arcWidth, arcHeight);
Libreras Geomtricas
11
Libreras Geomtricas
12
Interfaz Shape
! La implementan: Area, CubicCurve2D, GeneralPath, Line2D, Polygon, QuadCurve2D, Rectangle, RectangularShape ! Mtodos:
Clase Area
! Implementa el interfaz Shape ! Adems implementa operaciones de CAG (Constructive Area Geometry) con otras reas cerradas como rectngulos, elipses y polgonos: Add, Substract, Intersect, ExclusiveOR
Area shape = new Area(shape1); shape.add(new Area(shape2)); shape.subtract(new Area(shape3)); shape.intersect(new Area(shape4)); shape.exclusiveOr(new Area(shape5));
Libreras Geomtricas
13
Libreras Geomtricas
14
GeneralPath
! Representa un camino geomtrico compuesto de lneas rectas, curvas cuadrticas y cbicas. Puede contener mltiples sub-caminos.
GeneralPath shape = new GeneralPath(); shape.moveTo(x, y); shape.lineTo(x, y); shape.quadTo(controlPointX, controlPointY, x, y); shape.curveTo(controlPointX1, controlPointY1, controlPointX2, controlPointY2, x, y); shape.closePath();
PathIterator
! Interfaz que permite recorrer el borde de cualquier objeto Shape. ! Cualquier objeto que implementa la interfaz Shape debe implementar el mtodo getPathIterator ! Mtodos:
" currentSegment " next " isDone
Libreras Geomtricas
15
Libreras Geomtricas
16