我正在开发一个小的绘画程序,在这个程序中,我可以用鼠标移动/调整角上有手柄的形状。这个程序已经很好用了,除了形状被旋转的时候。我需要在X坐标和Y坐标之间进行转换。我尝试了一些正弦/余弦计算,但没有成功。可能是公式中有基本错误,或者MouseMove事件中X/Y的变化太小,无法进行此计算。有没有人对这个主题有经验或者有一些好的链接(也许有例子)?提前谢谢你,彼得
gwbalxhn1#
尽可能避免使用Angular ,最好使用 * 变换 *,即矩阵。一个例子是system.numerics.matrix3x2,它有从Angular ,平移,缩放等创建变换的方法。矩阵的一些重要属性是,你可以合并它们并反转它们。除了简单地使用它们来变换一个点。绘制一个矩阵来可视化变换通常也很有用,即用矩阵乘以零向量、x单位向量和y单位向量,并在这些点之间绘制一些线,这应该给予很好地可视化变换的作用。虽然不是绝对需要,但一些linear algebra知识在做这类事情时非常有用。
1条答案
按热度按时间gwbalxhn1#
尽可能避免使用Angular ,最好使用 * 变换 *,即矩阵。
一个例子是system.numerics.matrix3x2,它有从Angular ,平移,缩放等创建变换的方法。矩阵的一些重要属性是,你可以合并它们并反转它们。除了简单地使用它们来变换一个点。
绘制一个矩阵来可视化变换通常也很有用,即用矩阵乘以零向量、x单位向量和y单位向量,并在这些点之间绘制一些线,这应该给予很好地可视化变换的作用。
虽然不是绝对需要,但一些linear algebra知识在做这类事情时非常有用。