Download Sesión 3: Especificación y uso de librerías geométricas
Document related concepts
no text concepts found
Transcript
Razonamiento Geométrico Tema 2: Librerías geométricas Sesión 3: Especificación y uso de librerías geométricas Introducción a Java Copyright © 2002-2003 Universidad de Alicante 1 Índice de la sesión Características generales Ejemplos de librerías: CGAL y JavaRG Operaciones básicas Introducción a Java Copyright © 2002-2003 Universidad de Alicante 2 1 Índice de la sesión Características generales Ejemplos de librerías: CGAL y JavaRG Operaciones básicas Introducción a Java Copyright © 2002-2003 Universidad de Alicante 3 Robustez Pequeños cambios en los datos de entrada no deben cambiar una solución correcta Se deben tratar correctamente: ¾ Casos degenerados ¾ Errores matemáticos causados por el redondeo Soluciones: ¾ Algoritmos más elaborados, aritmética racional exacta Introducción a Java Copyright © 2002-2003 Universidad de Alicante 4 2 Eficiencia Los algoritmos deben ser eficiecientes y correctos Eficiencia: ¾ Compromiso entre exactitud y eficiencia ¾ Representación de los datos Corrección: ¾ Establecer con precisión para qué entradas funciona ¾ Comprobar casos degenerados y dar mensaje de error Introducción a Java Copyright © 2002-2003 Universidad de Alicante 5 Facilidad de uso Estructura de nombres uniforme Consistencia en el tipo de parámetros y valores devueltos por las funciones Facilidad en la depuración de errores: ¾ Posibilidad de definir “watchdogs” geométricos en la fase de depuración Introducción a Java Copyright © 2002-2003 Universidad de Alicante 6 3 Índice de la sesión Características generales Ejemplos de librerías: CGAL y JavaRG Operaciones básicas Algunas implementaciones Introducción a Java Copyright © 2002-2003 Universidad de Alicante 7 Carácterísticas generales Desarrollada por un consorcio europeo Escrita en C++ Más de 30 clases URL: http://www.cs.uu.nl/CGAL Introducción a Java Copyright © 2002-2003 Universidad de Alicante 8 4 Estructura de CGAL Introducción a Java Copyright © 2002-2003 Universidad de Alicante 9 Ventajas de Java Portabilidad Orientación a objetos Clases estándar para entradas y salidas gráficas Sintaxis C, C++ Introducción a Java Copyright © 2002-2003 Universidad de Alicante 10 5 JavaRG Proyecto de librería geométrica, basada en CGAL y en Java Librería docente (énfasis en la corrección y en la facilidad de uso y no en la eficiencia) Implementada por Pablo Suau como proyecto de Sistemas Informáticos Introducción a Java Copyright © 2002-2003 Universidad de Alicante 11 Clases básicas (package JavaRG.Nucleo2D) Subclases de ObjetoGeometrico: ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ Caja2D Circulo2D Punto2D: punto cartesiano Vector2D: vector en el espacio cartesiano Direccion2D: vector sin magnitud Segmento2D: segmento orientado Recta2D: recta orientada Rayo2D: punto de inicio y dirección Triangulo2D Rectangulo2D Introducción a Java Copyright © 2002-2003 Universidad de Alicante 12 6 Clases de apoyo GeomException: manejo de errores en Java Mat: librería matemática básica, incluye las constantes de la librería Circulador: interfaz que permite recorrer objetos geométricos compuestos Introducción a Java Copyright © 2002-2003 Universidad de Alicante 13 Índice de la sesión Características generales Ejemplos de librerías: CGAL y JavaRG Operaciones básicas Introducción a Java Copyright © 2002-2003 Universidad de Alicante 14 7 Operaciones básicas Consultar JavaDoc de la librería Introducción a Java Copyright © 2002-2003 Universidad de Alicante 15 GeomException Manejo de errores geométricos Generar una excepción: public void prueba() throws GeomException { ... if (error) throw new GeomException(“tipo error”); ... } Manejar la excepción: try { ... prueba(); ...} catch (GeomException e) {System.out.println(e.getMessage());} Introducción a Java Copyright © 2002-2003 Universidad de Alicante 16 8 Ejemplos Applet AppletBase Ejemplos de JavaRG Ejemplo gráfico EjemploGrafico.class Introducción a Java Copyright © 2002-2003 Universidad de Alicante 17 Tareas Probar a compilar los ejemplos de JavaRG Leer el tutorial de JavaRG Comenzar a hacer la práctica 1: ¾ Applet para que el usuario pueda introducir puntos o generarlos al azar y que calcule los puntos con distancia máxima Introducción a Java Copyright © 2002-2003 Universidad de Alicante 18 9