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