Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪种方法旋转三维向量_C#_Math_Mathnet Numerics - Fatal编程技术网

C# 哪种方法旋转三维向量

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

我应该使用哪个函数围绕另一个三维向量轴点旋转三维向量

我使用C库,主要是因为我不怕说我在与复杂的数学概念作斗争。有人建议我使用仿射变换,但似乎没有执行此概念/公式的类或方法。此外,vector类没有Rotate方法,因此这不是解决方案


你能建议我使用什么函数、方法或类来实现这一点吗?

我不懂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