Мне нужно нарисовать трехмерный куб на двумерном холсте в C# (с помощью графики в Windows Forms) и заставить его вращаться вокруг своих осей. Однако мне не разрешено использовать какие-либо внешние библиотеки, такие как OpenGL или DirectX, которые сделают это за меня. Как я могу вручную реализовать 3D-вращение и проекцию на 2D-холст? Будем признательны за любые ресурсы или рекомендации по работе с матрицами вращения и перспективной проекцией на C#!
На данном этапе мне удалось нарисовать только куб с использованием примитивов.
graphics.DrawLine(Pens.Black, width / 2 - x, height / 2 - x, width / 2 + x, height / 2 - x);
graphics.DrawLine(Pens.Black, width / 2 - x, height / 2 - x, width / 2 - x, height / 2 + x);
graphics.DrawLine(Pens.Red, width / 2 + x, height / 2 - x, width / 2 + x, height / 2 + x);
graphics.DrawLine(Pens.Black, width / 2 - x, height / 2 + x, width / 2 + x, height / 2 + x);
graphics.DrawLine(Pens.Black, width / 2 + x, height / 2 - x, width / 2 + x + 3 / 2 * x, height / 2 - x - 3 / 2 * x);
graphics.DrawLine(Pens.Black, width / 2 - x, height / 2 - x, width / 2 - x + 3 / 2 * x, height / 2 - x - 3 / 2 * x);
graphics.DrawLine(Pens.Black, width / 2 - x + 3 / 2 * x, height / 2 - x - 3 / 2 * x, width / 2 + 2 * x, height / 2 - x - 3 / 2 * x);
graphics.DrawLine(Pens.Blue, width / 2 + x, height / 2 + x, width / 2 + 2 * x, height / 2 + x - 3 / 2 * x);
graphics.DrawLine(Pens.Brown, width / 2 + 2 * x, height / 2 + x - 3 / 2 * x, width / 2 + 2 * x, height / 2 + x - 3 / 2 * x - 2 * x);
Подробнее здесь: https://stackoverflow.com/questions/790 ... ternal-lib