旋转的矩形被移动(SVG - 旋转矩阵)

时间:2021-05-06 06:04:28

标签: go svg rotation image-rotation

我使用 SVG 来处理一些公式。当我旋转一个矩形时,矩形会移动...

split

结果看起来像这样(黑色矩形)

enter image description here

矩形已旋转,但角度不是 90 度……这是一个简单且有据可查的公式,但我找不到我的错误。

(在 SVG 中还有其他方法可以绘制和旋转事物,但我使用公式。)

1 个答案:

答案 0 :(得分:2)

在您的 Rotate 函数中,您错误地计算了新的 xy 坐标。您根据 r.A.Xr.A.X 的当前值计算 r.A.Y,然后根据 r.A.Y 的新值计算 r.A.X,这会让您失望.

您需要知道原始 xy 值,然后根据这些值计算新值。

rad := dToR(a)

x, y := r.A.X, r.A.Y
r.A.X = x*math.Cos(rad) - y*math.Sin(rad)
r.A.Y = x*math.Sin(rad) + y*math.Cos(rad)