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

klh5stk1  于 2022-11-17  发布在  C#
关注(0)|答案(1)|浏览(154)

我正在开发一个小的绘画程序,在这个程序中,我可以用鼠标移动/调整角上有手柄的形状。这个程序已经很好用了,除了形状被旋转的时候。
我需要在X坐标和Y坐标之间进行转换。我尝试了一些正弦/余弦计算,但没有成功。可能是公式中有基本错误,或者MouseMove事件中X/Y的变化太小,无法进行此计算。
有没有人对这个主题有经验或者有一些好的链接(也许有例子)?
提前谢谢你,彼得

gwbalxhn

gwbalxhn1#

尽可能避免使用Angular ,最好使用 * 变换 *,即矩阵。
一个例子是system.numerics.matrix3x2,它有从Angular ,平移,缩放等创建变换的方法。矩阵的一些重要属性是,你可以合并它们并反转它们。除了简单地使用它们来变换一个点。
绘制一个矩阵来可视化变换通常也很有用,即用矩阵乘以零向量、x单位向量和y单位向量,并在这些点之间绘制一些线,这应该给予很好地可视化变换的作用。
虽然不是绝对需要,但一些linear algebra知识在做这类事情时非常有用。

相关问题