5.1.
Gu´ıa de usuario
La aplicaci´on requiere de determinados paquetes y librer´ıas de Python para funcionar. Las m´as importantes, y que no forman parte del paquete de librer´ıas por defecto de Pyt- hon, son OpenGL y Kivy.
Instalar librer´ıa de desarrollo para Python
Para descargar e instalar la librer´ıa gr´afica OpenGL, se puede hacer f´acilmente ejecu- tando el siguiente comando en una terminal Unix (puede que se requieran permisos de superusuario, incluir sudo al comienzo del comando.):
$ pip i n s t a l l P y O p e n G L P y O p e n G L _ a c c e l e r a t e.
Es posible que no se disponga de instalado, para ello, ejecutar el siguiente comando: $ sudo apt-get i n s t a l l python-pip python-dev build-e s s e n t i a l $ sudo pip i n s t a l l --u p g r a d e pip
$ sudo pip i n s t a l l --u p g r a d e v i r t u a l e n v
En caso de preferir instalaci´on manual, se puede acudir al c´odigo fuente y descargarlo en http://pyopengl.sourceforge.net/
La siguiente librer´ıa a descargar es Kivy. Su instalaci´on en un sistema Unix, a trav´es de l´ınea de comandos, es la siguiente:
$ sudo add-apt-r e p o s i t o r y ppa:kivy-team/kivy $ sudo apt-get u p d a t e
$ sudo apt-get i n s t a l l pythonX-kivy
En la ´ultima instrucci´on anterior, X ha de ser reemplazada por un 3 si se esta traba- jando en Python versi´on 3 o superior, o no poner nada para versiones inferiores a Python 3. Adem´as, se puede encontrar informaci´on adicional para su intalaci´on en otros siste- mas operativos, o para paquetes requeridos por la librer´ıa, en https://kivy.org/docs/ installation/installation-linux.html#.
Una vez todo preparado para la ejecuci´on del problema, se requiere crear una carpeta con el nombre imagenes dentro del directorio de trabajo donde se encuentre el fichero de ejecuci´on del programa principal. El objetivo es tener localizadas todas las im´agenes con las que se esta trabajando.
Finalmente, ejecutar ´unicamente el archivo interfazVoronoi.py, en el mismo directo- rio donde este la carpeta imagenes anteriormente creada y el archivo auxiliar conosO- penGL.py.
5.1. GU´IA DE USUARIO 39
¿C´omo usar la interfaz de usuario?
Los par´ametros que se pueden manipular antes de la ejecuci´on son 6, y han de tener el siguiente formato de entrada:
N´umero de regiones, o n´umero de puntos generadores (valor entero mayor que 1). Desviaci´on t´ıpica (valor decimal, no se recomienda un valor mayor a 0.01).
Modo: selecci´on aleatoria (valor 0) o permutaci´on (valor 1).
M´etodo: Descenso mas pronunciado (valor 0) o Recocido simulado (valor 1). Tiempo m´aximo de ejecuci´on en segundos (valor entero).
Valor de parada en un rango de 1-99 (valor entero).
Para guardar el valor, una vez escrito, hay que pulsarenter. Adem´as, el orden importa, hay que ir introduciendolos y presionando enter de arriba a abajo, es decir, empezando por n´umero de regiones y acabando por valor de parada.
Figura 5.2: Introducci´on de datos.
Por ´ultimo, los botones del recuadrado inferior derecho tienen las siguiente funciones: Pulsar Ejecutar iniciar´a la ejecuci´on de la aplicaci´on en OpenGL.
PulsarActualizarmostrar´a en el recuadro superior izquierda los datos de ejecuci´on una vez acabada la ejecuci´on, si no ha acabado, mostrar´a los datos de la anterior ejecuci´on realizada.
40 CAP´ITULO 5. INTERFAZ DE USUARIO
Interacci´on con OpenGL
Una vez pulsado el bot´on Ejecutar en la interfaz de usuario, se desplegar´a una nueva ventana de OpenGL. Esta muestra el contiene de la ”imagen de iteraci´on” en cada momento. Se pueden realizar distintas funciones en esta ventana presionando las siguientes teclas:
Presionando la tecladse pinta la informaci´on relativa a los potenciales generadores, puntos rojos para los centroides en la primera iteraci´on, y puntos verdes para los potenciales generadores en cada iteraci´on.
Presionando la tecla f para comenzar la ejecuci´on del algoritmo autom´aticamente. Presionando la tecla e para ejecutar una ´unica iteraci´on del algoritmo por vez pul- sada la tecla.
Presionando la tecla g para detener la ejecuci´on del algoritmo. Si se ha detenido y se vuelve a pulsar g, el algoritmo continuar´a desde donde estaba.
Presionando la tecla s para guardar la imagen que se muestra actualmente en el directorio imagenes.
Presionando la tecla +/- para aumentar o disminuir el radio de los conos. Es una funcionalidad extra a la aplicaci´on.
Las teclas pueden combinarse y ofrecer distintas opciones, por ejemplo: se puede ini- ciar la ejecuci´on con f; detenerla tras un determinado n´umero de iteraciones pulsandog; pintar los puntos con d para observar como se han ido moviendo los potenciales genera- dores respecto de los centroides iniciales; continuar con al ejecuci´on pulsandog.
La ejecuci´on del algoritmo puede realizarse con d activado, es decir, con los puntos dibujados, para observar en directo el movimiento de los generadores. Sin embargo, eso son p´ıxeles, aunque en n´umero peque?o, que modificar´an el valor de diferencia de p´ıxeles entre las im´agenes. Se recomienda usar esta opci´on junto a la tecla e.
Si se quiere guardar una imagen de la ejecuci´on, se recomienda no hacerlo durante la ejecuci´on del algoritmo, por ello, si se quiere obtener una imagen durante la ejecuci´on, presionar la tecla g para pausar la ejecuci´on, guardar la imagen, y continuar la ejecuci´on con g de nuevo.
Bibliograf´ıa
[1] Franz Aurenhammer, Voronoi Diagrams - A survey of a Fundamental Geometric Data Stucture, ACM Computing Surveys, Vol.23,No. 3, (September 1991).
[2] D. Hartvigsen, Recognizing Voronoi Diagrams with Linear Programming, ORSA J. Comput.4:369-374, (1992).
[3] The Scipy community,https: // docs. scipy. org/ doc/ numpy/ reference/, The reference documentation for many of the numpy functions, API(2008-2009). [4] The Scipy community, https: // docs. scipy. org/ doc/ scipy/ reference/
generated/ scipy. spatial. Voronoi. html, The reference documentation for Vo- ronoi diagrams functions in Python, API(2008-2016).
[5] KHRONOS GROUP, https: // www. opengl. org/ documentation/, OpenGL
APIDocumentation,(1997-2016).
[6] A. Clark, F. Lundh, https: // pillow. readthedocs. io/ en/ 4. 1. x/, Python Imaging LibraryAPI, Revision e7f156c9, (1995-2011).
[7] Svetlana N. Yanushkevich,Adrian Stoica,Vlad P. Shmerko,Denis V. Popel,Biometric inverse problems, Taylor and Francis Group, (2005).
[8] Joseph O’Rourke, Computational geometry in C, 2a edici´on, (1998).
Este documento esta firmado por
Firmante CN=tfgm.fi.upm.es, OU=CCFI, O=Facultad de Informatica - UPM,
C=ES
Fecha/Hora Mon Jun 12 18:27:39 CEST 2017
Emisor del
Certificado [email protected], CN=CA Facultad deInformatica, O=Facultad de Informatica - UPM, C=ES
Numero de Serie 630
Metodo urn:adobe.com:Adobe.PPKLite:adbe.pkcs7.sha1 (Adobe