非常具体的鼠标移动和坐标转换问题(C#/Win Forms)



我正在开发一个小型绘画程序,在该程序中,我可以使用鼠标移动/调整角上带手柄的形状。这已经很好地工作了,除非形状被旋转

我需要在X坐标和Y坐标之间进行转换。我试过一些正弦/余弦计算,但没有成功。要么我的公式中有基本错误,要么MouseMove事件中X/Y的变化太小,无法进行此计算。

有没有人有这个话题的经验,或者可能有一些好的链接(可能有例子(?

提前,Peter

尽可能避免使用角度,更喜欢使用变换,即矩阵。

其中一个例子是system.numerics.matrix3x2,它有从角度、平移、缩放等创建变换的方法。矩阵的一些重要特性是,可以将它们组合并反转。除了简单地使用它们来变换点之外。

绘制一个矩阵来可视化变换通常也很有用,即将零向量、x单位向量和y单位向量与矩阵相乘,并在这些点之间画一些线,这样可以很好地可视化变换的作用。

虽然不是绝对需要的,但一些线性代数知识在做这样的事情时非常有用。

最新更新