C/Visual C - Grafos

 
Vista:

Grafos

Publicado por Carolina (1 intervención) el 18/07/2003 08:01:10
Tengo un proyecto para la universidad sobre una red de acueducto, en el que debo gráficar la red basada en grafos, podrían ayudarme sobre cómo se hacen gráficos en C?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo hacer gráficos en C para representar una red de acueducto basada en grafos

Publicado por Alejandro (1286 intervenciones) el 15/07/2025 20:40:27
Carolina, para graficar en C, especialmente en un entorno como Visual C++ 6.0, tienes varias opciones dependiendo del nivel de complejidad y del entorno gráfico que quieras usar. Aquí te doy una visión general y algunas recomendaciones:

Opciones para hacer gráficos en C



1. Bibliotecas gráficas en modo consola (ASCII art)
- Puedes dibujar grafos en la consola usando caracteres ASCII, pero esto es limitado y solo útil para gráficos simples.

2. Bibliotecas gráficas básicas
- graphics.h (de Borland): Es una biblioteca clásica para gráficos en modo DOS/Windows, útil para programas sencillos.
- WinGDI (Windows GDI): Usar las funciones de GDI para dibujar en ventanas de Windows, como líneas, círculos, etc.

3. Bibliotecas externas
- OpenGL: Para gráficos 2D y 3D, más complejo pero muy potente.
- SDL o SFML: Bibliotecas modernas para gráficos en C/C++, más fáciles de usar que OpenGL.

Cómo graficar un grafo en modo simple con `graphics.h`



Supongamos que quieres dibujar nodos (puntos) y aristas (líneas) que representan la red de acueducto. Aquí tienes un ejemplo básico usando `graphics.h`:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <graphics.h>
#include <conio.h>
 
int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, ""); // Inicializa gráficos
 
    // Coordenadas de los nodos (puedes ajustarlas)
    int nodes[5][2] = {
        {100, 100},
        {200, 50},
        {300, 100},
        {150, 200},
        {250, 200}
    };
 
    // Dibujar nodos
    for (int i = 0; i < 5; i++) {
        circle(nodes[i][0], nodes[i][1], 20);
        setfillstyle(SOLID_FILL, WHITE);
        floodfill(nodes[i][0], nodes[i][1], WHITE);
    }
 
    // Dibujar aristas (conexiones)
    line(nodes[0][0], nodes[0][1], nodes[1][0], nodes[1][1]);
    line(nodes[1][0], nodes[1][1], nodes[2][0], nodes[2][1]);
    line(nodes[0][0], nodes[0][1], nodes[3][0], nodes[3][1]);
    line(nodes[3][0], nodes[3][1], nodes[4][0], nodes[4][1]);
    line(nodes[2][0], nodes[2][1], nodes[4][0], nodes[4][1]);
 
    getch();
    closegraph();
    return 0;
}

Recomendaciones



- Define claramente los nodos y conexiones en tu grafo, y asigna coordenadas para visualizarlos.
- Usa funciones para dibujar nodos y aristas para mantener el código organizado.
- Ajusta las coordenadas para que la red sea clara y legible.

Recursos útiles



- Documentación de `graphics.h` (en VC++ 6.0 o Borland C++).
- Ejemplos en línea de gráficos en C con `graphics.h`.
- Considera usar librerías modernas si quieres gráficos más avanzados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar