【发布时间】:2015-07-29 01:23:02
【问题描述】:
我正在尝试围绕原点旋转一个点,但我不确定我到底做错了什么,我使用的是 PresentationCore 中内置的 System.Windows.Media.Media3D 命名空间:
var id = Matrix3D.Identity;
id.Rotate(new Quaternion(new Vector3D(1,0,0),90)); // Rotate around the X axis 90 degrees
var pt = new Point3D(0,0,10);
var p2 = id.Transform(pt); // Expect point to be rotated around the X axis 90 degree
p2 的期望值为 x:0; 是:10; z:0;
实际值为 x:0; 是:-10; z:2,22044604925031E-15
我确定我犯了一个非常基本的错误,但我无法发现它。
【问题讨论】:
标签: c# matrix 3d rotation quaternions