C/Visual C - para turbo c ¿hacer una fig. 3d con movimiento?

 
Vista:

para turbo c ¿hacer una fig. 3d con movimiento?

Publicado por rodrigo gonzalez (2 intervenciones) el 08/10/2001 04:32:58
necesito hacer un programa en turbo c, que haga una figura 3d con movimiento, si tienen la programacion se los agradeceria mucho,garcias.
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

Programa en Turbo C para dibujar una figura 3D en movimiento

Publicado por Alejandro (913 intervenciones) el 16/10/2024 19:40:55
A continuación, te muestro un ejemplo básico de cómo crear una figura 3D en movimiento utilizando Turbo C. En este caso, dibujaremos un cubo rotatorio. Asegúrate de tener configurado Turbo C y la biblioteca gráfica adecuada.

Código de ejemplo



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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <graphics.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
 
void dibujarCubo(int x, int y, int size) {
    // Definir los vértices del cubo
    int vertices[8][3] = {
        { -1, -1, -1 },
        {  1, -1, -1 },
        {  1,  1, -1 },
        { -1,  1, -1 },
        { -1, -1,  1 },
        {  1, -1,  1 },
        {  1,  1,  1 },
        { -1,  1,  1 }
    };
 
    // Rotación en el eje Y
    float angle = 0.1; // Ángulo de rotación
    for (int i = 0; i < 8; i++) {
        float x_rot = vertices[i][0] * cos(angle) - vertices[i][2] * sin(angle);
        float z_rot = vertices[i][0] * sin(angle) + vertices[i][2] * cos(angle);
        vertices[i][0] = x_rot;
        vertices[i][2] = z_rot;
    }
 
    // Dibujar las aristas del cubo
    for (int i = 0; i < 4; i++) {
        line(x + size * vertices[i][0], y + size * vertices[i][1],
             x + size * vertices[(i + 1) % 4][0], y + size * vertices[(i + 1) % 4][1]);
        line(x + size * vertices[i + 4][0], y + size * vertices[i + 4][1],
             x + size * vertices[(i + 1) % 4 + 4][0], y + size * vertices[(i + 1) % 4 + 4][1]);
        line(x + size * vertices[i][0], y + size * vertices[i][1],
             x + size * vertices[i + 4][0], y + size * vertices[i + 4][1]);
    }
}
 
int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "C:\\Turboc3\\BGI"); // Cambia la ruta según tu instalación
 
    int x = getmaxx() / 2; // Centro de la pantalla
    int y = getmaxy() / 2; // Centro de la pantalla
    int size = 50; // Tamaño del cubo
 
    while (!kbhit()) { // Ejecutar hasta que se presione una tecla
        cleardevice(); // Limpiar la pantalla
        dibujarCubo(x, y, size); // Dibujar el cubo
        delay(50); // Retardo para controlar la velocidad
    }
 
    closegraph(); // Cerrar el modo gráfico
    return 0;
}

Notas importantes



1. Configuración de Turbo C: Asegúrate de que Turbo C esté correctamente instalado y que la ruta a la carpeta BGI sea correcta en la función `initgraph`.
2. Compilación: Compila el código en Turbo C y ejecuta el programa. Deberías ver un cubo rotando en la pantalla.
3. Movimiento: El cubo rota continuamente hasta que presiones una tecla.

Explicación del código



- Dibujo del cubo: La función `dibujarCubo` define los vértices de un cubo y los rota en el eje Y.
- Bucle principal: El bucle principal limpia la pantalla, dibuja el cubo y espera un breve período antes de repetir.
- Interacción: El programa se detiene cuando se presiona una tecla.

¡Buena suerte con tu proyecto, Rodrigo!
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