我正在开发一个小型绘画程序,在该程序中,我可以使用鼠标移动/调整角上带手柄的形状。这已经很好地工作了,除非形状被旋转。
我需要在X坐标和Y坐标之间进行转换。我试过一些正弦/余弦计算,但没有成功。要么我的公式中有基本错误,要么MouseMove事件中X/Y的变化太小,无法进行此计算。
有没有人有这个话题的经验,或者可能有一些好的链接(可能有例子(?
提前,Peter
尽可能避免使用角度,更喜欢使用变换,即矩阵。
其中一个例子是system.numerics.matrix3x2,它有从角度、平移、缩放等创建变换的方法。矩阵的一些重要特性是,可以将它们组合并反转。除了简单地使用它们来变换点之外。
绘制一个矩阵来可视化变换通常也很有用,即将零向量、x单位向量和y单位向量与矩阵相乘,并在这些点之间画一些线,这样可以很好地可视化变换的作用。
虽然不是绝对需要的,但一些线性代数知识在做这样的事情时非常有用。