Adaptación y extensión de implementación de un algoritmo para generar mallas poligonales a otros lenguajes de programación
Professor Advisor
dc.contributor.advisor
Hitschfeld Kahler, Nancy
Author
dc.contributor.author
Amenábar Meza, Beltrán Ignacio
Associate professor
dc.contributor.other
Muñoz Apablaza, Valentín
Associate professor
dc.contributor.other
Olmedo Berón, Federico
Admission date
dc.date.accessioned
2022-11-14T14:19:52Z
Available date
dc.date.available
2022-11-14T14:19:52Z
Publication date
dc.date.issued
2022
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/189162
Abstract
dc.description.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++
es_ES
Lenguage
dc.language.iso
es
es_ES
Publisher
dc.publisher
Universidad de Chile
es_ES
Type of license
dc.rights
Attribution-NonCommercial-NoDerivs 3.0 United States