#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;
}