C# 哪种方法旋转三维向量
我应该使用哪个函数围绕另一个三维向量轴点旋转三维向量 我使用C库,主要是因为我不怕说我在与复杂的数学概念作斗争。有人建议我使用仿射变换,但似乎没有执行此概念/公式的类或方法。此外,vector类没有Rotate方法,因此这不是解决方案C# 哪种方法旋转三维向量,c#,math,mathnet-numerics,C#,Math,Mathnet Numerics,我应该使用哪个函数围绕另一个三维向量轴点旋转三维向量 我使用C库,主要是因为我不怕说我在与复杂的数学概念作斗争。有人建议我使用仿射变换,但似乎没有执行此概念/公式的类或方法。此外,vector类没有Rotate方法,因此这不是解决方案 你能建议我使用什么函数、方法或类来实现这一点吗?我不懂Math.Net,但通常你会建立一个4x4矩阵,并将向量与该矩阵相乘。 如果要围绕另一个向量旋转,则需要按以下方式构建矩阵: 移动到轴心点,旋转并移回原点 伪代码: matrix = matrix.transl
你能建议我使用什么函数、方法或类来实现这一点吗?我不懂Math.Net,但通常你会建立一个4x4矩阵,并将向量与该矩阵相乘。 如果要围绕另一个向量旋转,则需要按以下方式构建矩阵: 移动到轴心点,旋转并移回原点 伪代码:
matrix = matrix.translation(pivot.x, pivot.y, pivot.z))
matrix *= matrix.rotationAxisAngle(axis, angle))
matrix *= matrix.translation(-pivot.x, -pivot.y, -pivot.z))
现在可以将向量与该矩阵相乘:
newVector = yourVector * matrix