Adaptación y extensión de implementación de un algoritmo para generar mallas poligonales a otros lenguajes de programación
Tesis
Access note
Acceso abierto
Publication date
2022Metadata
Show full item record
Cómo citar
Hitschfeld Kahler, Nancy
Cómo citar
Adaptación y extensión de implementación de un algoritmo para generar mallas poligonales a otros lenguajes de programación
Author
Professor Advisor
Abstract
Las mallas geométricas son una herramienta muy importante dentro de la computación
gráfica. Estas permiten la representación de objetos complejos mediante el uso de elementos
básicos como polígonos y con ello permiten realizar visualizaciones, simulaciones y resolver
ecuaciones diferenciales de manera numérica. Es por esto último que ha surgido la necesidad
de nuevos procesos de generación de mallas, no solo restringiéndose a mallas de triángulos,
sino que permitiendo también mallas de polígonos.
A partir de esta problemática surge el algoritmo Polylla de generación de mallas de
polígonos a partir de triangulaciones, junto con Polylla-Mesh, una implementación en C++
de este. Sin embargo, esta implementación es difícil de utilizar y deja afuera a científicos que
usen otros lenguajes de programación como Python y MATLAB.
Es por esto que se decidió extender la implementación original, generando una versión
más fácil de usar y también generando versiones para Python y MATLAB. Para esto, el
código se refactorizó cambiando la estructura de datos a Half-Edge, actualizando el código a
un estilo de C++ moderno y generando una librería que se pueda usar en C++.
Por otro lado, se utilizó la C++ MEX API de MATLAB para generar una interfaz de la
librería a MATLAB y se utilizó pybind11 para generar una interfaz de la librería a Python,
por lo que ambas interfaces son minimalistas y dependen de la versión de C++.
Los resultados obtenidos fueron positivos. La versión de C++ logró parecerse lo suficiente
a la versión original, logrando que las mallas resultantes en promedio tengan un parecido
de 96 % y logrando tiempos similares en las mismas triangulaciones dadas. Por otro lado, la
interfaz de MATLAB funciona correctamente, permitiendo su fácil utilización, pero perdiendo
un poco en eficiencia, logrando tiempos hasta 10 veces mayores en triangulaciones de muchos
puntos en comparación a la versión de C++. Por ultimo la versión de Python funciona
correctamente y también es fácil de utilizar, teniendo mejor rendimiento que la versión de
MATLAB y acercándose a los tiempos de la versión de C++
xmlui.dri2xhtml.METS-1.0.item-notadetesis.item
Memoria para optar al título de Ingeniero Civil en Computación
Collections
The following license files are associated with this item: