Skip to content

EMACC99/graph_visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

79291c2 · Sep 3, 2021
Apr 5, 2021
Mar 16, 2021
Apr 30, 2021
Jun 16, 2021
Sep 2, 2021
Jun 10, 2021
Jun 16, 2021
Sep 3, 2021
Aug 15, 2021
Mar 25, 2021
Jun 16, 2021
Mar 16, 2021
Mar 16, 2021
Aug 11, 2021
Sep 2, 2021
Jun 12, 2021
Sep 3, 2021

Repository files navigation

Visualizador de grafos

Librerias Requiridas:

  • SFML
  • g++
  • make

Instrucciones de compilacion

Primero, hay que clonar el repositorio

git clone https://github.com/EMACC99/graph_visualizer

Instalar la libreria:

Para correr el programa se necesitan las siguentes librerias:

libsfml-dev
build-essential
cmake #para construir los submodulos
argh #incluida como submodulo
gtest #incluida como submodulo

Se puede instalar con el manejador de paquetes preferido: eg

sudo apt install libsfml-dev build-essential

argh y gtest viene incluida como submodulo de git.

Para eso, se puede ejecutar el script de configuracion automated_setup.sh (Require sudo).

Para hacerlo a mano, se necestian ejecutar los siguientes comandos:

git submodule init
git submodule update

cd googletest #hay que compilar gtest
mkdir build
cd build
cmake ..

make

sudo make install

Para mas informacion sobre gtest y opciones de compilacion, puede consultar la documentacion

Compilacion

Para compilar el programa, se puede correr el makefile incluido, para eso, solo hay que poner en una terminal

make

Y automaticamente generara el binario llamado sfml-app

A Mano:

Si no se desea usar el makefile, se puede hacer de la siguente manera

g++ -c main.cpp

g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

Ejecucion

Para ejecutar el programa, hay que poner en una terminal el siguente comando:

./sfml-app

Para correr la parte de test de los algoritmos

./sfml-app --test

O

./sfml-app -t

Si se le pasan otros argumentos, continuara la ejecucion normal del programa

Funcionalidades

El programa tiene por ahora, tres funcionalidades basicas:

  • Añadir un nodo -> dando click
  • Unir dos nodos -> dando click a dos nodos
  • Mover los nodos -> presionando la rueda del mouse sobre el nodo y mover el mouse sin soltarlo
  • Borrar lo que esta en pantalla -> Del
  • Asignar pesos a las aristas -> w
  • Ejecutar Prim -> presionar tecla 1 o Numpad1
  • Ejecutar Kruskal -> presionar tecla 2 o Numpad2
  • Limpiear las lineas coloreadas -> presionar tecla 0 o Numpad0
  • Ejecutar Erdős–Rényi -> presionar tecla 3 o Numpad3
  • Ejecutar Erdős–Rényi con m aristas -> tecla 4 o Numpad4
  • Generar un Arbol Aleaotrio con n vertices -> tecla 5 o Numpad5
  • Generar una Grafica Conexa aleatoria con n vertices -> tecla 6 o Numpad6
  • Detectar numero de componentes conexas y colorearlas -> tecla 7 o Numpad7
    • Si es solo una compoenente conexa, va a daterminar si es un arbol dada una raiz e imprime la lista de padres.

La entrada de algunos de los algoritmos a visualizar, se tiene que dar en consola

Programa

El programa se ve asi:

Funcionamiento Funcionamiento2 Funcionamiento3

Y despues de ejecutar Prim:

Prim

Ejecutando el de Krsukal:

Kruskal

Los de los unit test:

UnitTest

Compoenentes Conexas: Compoenentes_conexas

SUS

Deteccion de Ciclos: deteccion_de_ciclos

Lista de padres: lista_padres

Releases

No releases published

Packages

No packages published