Как добавить камеру в поворот Matrix4x4 - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь повернуть куб, используя 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

Как мне сделать это правильно?

...