ste*_*wpf 3 wpf vector rotation
我想旋转给定的2D(!)向量,是否有WPF内置函数?目前我手动完成:
Vector v = new Vector();
v.X = 10; v.Y = 10;
Vector v2 = new Vector();
v2.X = v.X * Math.Cos(-90 * 180 / Math.PI) - v.Y * Math.Sin(-90 * 180 / Math.PI);
v2.Y = v.Y * Math.Cos(-90 * 180 / Math.PI) + v.X * Math.Sin(-90 * 180 / Math.PI);
Run Code Online (Sandbox Code Playgroud)
我认为通过将给定的向量乘以旋转矩阵也可以实现这一点?无论如何,我不明白,有人可以举个例子吗?谢谢!
你应该看一下System.Windows.Media.Matrix.Rotate(...).使用此方法,您可以创建一个旋转矩阵,然后可以使用静态Vector.Mulitply(...)方法或Matrix.Transform(...)方法将其应用于矢量.
到目前为止,我从未使用过Matrix类,但我的第一个想法是使用这样的东西:
Matrix m = Matrix.Identity;
m.Rotate(90);
Vector v2 = m.Transform(v);
Run Code Online (Sandbox Code Playgroud)
请注意,Matrix类使用3x3矩阵,但这并不意味着它适用于3D.它更适用于2D(您可以在文档中阅读).额外的参数用于翻译与其他改造相结合一个转变.有关详细信息,请参阅同源坐标.
| 归档时间: |
|
| 查看次数: |
6398 次 |
| 最近记录: |