Все просто.
Пусть например у нас в 4-x мерном пространстве точки.
Эти точки могут быть вершины кубика, например:
(1,1,1,1)
(1,1,1,-1)
(1,1,-1,1)
(1,1,-1,-1)
(1,-1,1,1)
...
просто взять все комбинации из 1 и -1 в четыре элемента.
Потом можно будет связать их линиями чтобы получить фигуру.
Ну вот, теперь чтобы спроецировать в 2д, нужно перемножить каждую точку на какую-нибудь матрицу которая переносит 4-х мерные вектора в 2д, например:
(1,0) (1)
(0,1) * (-1)
(0,0) (1)
(0,0) (-1)
(Слева матрица, справа одна из точек).
Ну и все, готово.
Но это конечно довольно скучная проекция -- она полностью игнорирует половину измерений.
Что-бы повертеть, мы можем использовать матрицу для поворотов:
(cos(t) -sin(t))
(sin(t) cos(t))
Только нужно эту матрицу как-то умножить на 4-х мерные точки/вектора. Тут мы просто фиксируем два направления, и изменяем только оставшиеся направления.
Например:
(1 0 0 0)
(0 cos(t) -sin(t) 0)
(0 sin(t) cos(t) 0)
(0 0 0 1)
умноженная на любую 4-x мерную точку будет поворачивать только вторую и третью координату, оставляя первую и четвертую нетронутой.
И потом мы опять используем скучную матрицу
(1,0)
(0,1)
(0,0)
(0,0)
что-бы перейти в 2д.