Transformaciones en tres dimensiones
Me imagino que estás usando matemáticas para tres dimensiones... Si no es así, aquí van algunos elementos.
Deberías definir para cada vértice del cubo su posición en 3 dimensiones, es decir, con tres puntos para cada uno. Un cubo de arista 2 con centro en 0,0,0 definiría su cara inferior como:
1,-1,1
1,-1,-1
-1,-1,1
-1,-1,-1
Lo usual es guardar cada punto en una estructura y hacer un arreglo de estructuras que exprese el cubo en 3 dimensiones.
Para dibujar el cubo, basta con transformar las coordenadas 3d en coordenadas 2d que se puedan dibujar en una pantalla. Una fórmula para pasar de 3d a 2d es
x = x / z;
y = y / z;
También es usual guardar estos valores en una matriz de estructuras.
Para rotar el cubo, debes rotar cada punto en 3d antes de pasarlo a 2d. Para eso se usa algo de trigonometría.
Imagina el punto x,y como perteneciendo a un cuadrado en 2 d con centro en 0,0. Si rotamos el cuadrado n grados, la distancia d del punto al centro permanecerá constante. La distancia d es la hipotenusa de un triángulo rectángulo de lados x e y. Siempre puedes, por lo tanto, calcular x e y dados la distancia d y el valor del ángulo que forma con el eje x. Como seno(angulo) == x / hipotenusa, entonces x = sin(angulo) * hipotenusa, e y=cos(angulo) * hipotenusa. Esto significa que si tienes x e y originales, sabes la hipotenusa (por Pitágoras), y basta dar un ángulo de rotación para encontrar x e y en su nueva posición.
Te debiera resultar fácil trasladar las fórmulas de 2d a 3d.
¡Suerte!