我使用 SVG 来处理一些公式。当我旋转一个矩形时,矩形会移动...
split
结果看起来像这样(黑色矩形)
矩形已旋转,但角度不是 90 度……这是一个简单且有据可查的公式,但我找不到我的错误。
(在 SVG 中还有其他方法可以绘制和旋转事物,但我使用公式。)
答案 0 :(得分:2)
在您的 Rotate
函数中,您错误地计算了新的 x
、y
坐标。您根据 r.A.X
和 r.A.X
的当前值计算 r.A.Y
,然后根据 r.A.Y
的新值计算 r.A.X
,这会让您失望.
您需要知道原始 x
、y
值,然后根据这些值计算新值。
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)