Я пытаюсь повернуть куб, используя System.Numerics.Matrix4x4 и SDL2 для графического вывода.Мне трудно понять концепцию вращения матрицы.
Я могу сделать это примерно так:
matrix *= Matrix4x4.CreateRotationX(deg);
matrix *= Matrix4x4.CreateRotationY(deg);
matrix *= Matrix4x4.CreateRotationZ(deg);
Затем я использую Vector3.Transform () для точек в кубе и рисую линии между ними.Выглядит ... хорошо, он вращается на месте.Но как мне получить перспективу?Как вставить камеру в микс?
А как насчет этого метода:
matrix *= Matrix4x4.CreateFromAxisAngle(new Vector3(2, 2, 2), (float)rad);
Я не уверен, как я должен использовать вектор там или что он должен делать,Мой куб странно растёт и растягивается ... см. Рис., Когда матрица наложена на куб на 10, 45 и 90 градусов:
https://www.dropbox.com/s/hui5jvky7cexciq/10_45_90.png?dl=0
Как мне сделать это правильно?