Вращение объекта вокруг локальных координат в OpenTK

Не по теме:

Может всё таки сначала стоит ознакомиться с основами линейной алгебры и матричными преобразованиями?

Это как раз таки вращение в локальной СК.

Если вы хотите вращать объект мышкой так, что бы сохранялось вращение самой система координат, то вам нужно избавится от этого :

и сохранять матрицу вращения. А при очередном апдейте вращать вокруг нужной оси (есть обобщённый метод createFromAxisAngle()). И если нужно что бы поворачивалась сама система координат, то обновлять эту матрицу так:

C#Выделить код

| | |
| --- | --- |
| 1 | transform = Matrix4.CreateFromAxisAngle(axis, deltaAngle)  transform; |

А если нужно сохранять ориентацию осей, то:

C#Выделить код

| | |
| --- | --- |
| 1 | transform = Matrix4.CreateFromAxisAngle(axis, deltaAngle); |

А вообще написать нормальный класс трансформации в котором сохранять матрицу вращения, положения, масштаба и вектор

origin(pivot)

, а так же соответсвующие методы манипуляции с объектом.