4

我的目标是拥有一个svg:ellipse可用于调整大小和旋转的四个控制点。如果将旋转变换应用于椭圆本身,我的代码可以正常工作,但我想将旋转应用于容器svg:g,以便控制点同时旋转而无需大量额外代码。当我将变换应用于组时,我假设旋转行为不正常,因为我没有正确考虑变换后的坐标。

见这里:http: //jsfiddle.net/PbKYn/3/

请注意,角度在旋转开始附近的正值和负值之间闪烁,并且鼠标旋转 2pi 只会旋转形状 1pi。(不过我不认为我的angleBetweenPoints函数有问题,因为如果我将旋转应用于 the<ellipse>而不是<g>,则旋转是完美的。)

我究竟做错了什么?谢谢-

4

1 回答 1

12

http://jsfiddle.net/PbKYn/5/

修复将旋转角度从更改angleBetweenPointscurrentAngle + angleBetweenPoints(伪)。我认为这意味着在应用旋转之后,坐标也进行了转换,angleBetweenPoints本质上是给出dTheta而不是theta. 乐叹息。

于 2012-12-15T08:29:00.907 回答