gpt4 book ai didi

WPF:旋转二维向量

转载 作者:行者123 更新时间:2023-12-03 21:20:32 27 4
gpt4 key购买 nike

我想旋转给定的 2D (!) Vector,是否有 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);

我认为这应该也可以通过将给定向量与旋转矩阵相乘来实现?无论如何,我不明白,有人可以给我举个例子吗?谢谢!

最佳答案

你应该看看System.Windows.Media.Matrix.Rotate(...) .使用此方法,您可以创建一个旋转矩阵,然后可以使用静态 Vector.Mulitply(...) 将其应用于矢量。方法或 Matrix.Transform(...)方法。

到目前为止我从未使用过 Matrix 类,但我的第一个想法是使用这样的东西:

Matrix m = Matrix.Identity;
m.Rotate(90);
Vector v2 = m.Transform(v);

请注意,Matrix 类使用 3x3 矩阵,但这并不意味着它适用于 3D。它更适合 2D(正如您可以在文档中阅读的那样)。附加参数用于在一个 转换中将翻译与另一个转换结合起来。参见 Homogenous coordinates了解详情。

关于WPF:旋转二维向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2645571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com