Куб - начнем с его описания - 8 точек, 12 линий их соединяющих, 3 типа координат.
Составим массив из 12 пар :
Код
Obj : Array [1..MaxLines,1..2,1..3] of integer =
(
((-10,-10,-10),(10,-10,-10)),((-10,-10,-10),(-10,10,-10)),
((-10,10,-10),(10,10,-10)),((10,-10,-10),(10,10,-10)),
((-10,-10,10),(10,-10,10)),((-10,-10,10),(-10,10,10)),
((-10,10,10),(10,10,10)),((10,-10,10),(10,10,10)),
((-10,-10,10),(-10,-10,-10)),((-10,10,10),(-10,10,-10)),
((10,10,10),(10,10,-10)),((10,-10,10),(10,-10,-10))
);
Эти пары - ни что иное как прямые, воплощающие куб.
Если их соединить мы его и увидим.
Матрицы поворотов -
Код
Вокруг Z
[Cos (a) -Sin (a) 0 0] [ x ]
[Sin (a) Cos (a) 0 0] . [ y ]
[ 0 0 1 0] [ z ]
[ 0 0 0 1] [ 1 ]
Вокруг Y
[Cos (a) 0 -Sin (a) 0] [ x ]
[ 0 1 0 0] . [ y ]
[Sin (a) 0 Cos (a) 0] [ z ]
[ 0 0 0 1] [ 1 ]
Вокруг X
[ 1 0 0 0] [ x ]
[ 0 Cos (a) -Sin (a) 0] . [ y ]
[ 0 Sin (a) Cos (a) 0] [ z ]
[ 0 0 0 1] [ 1 ]