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