【问题标题】:Drag to rotate an SVG:g group拖动以旋转 SVG:g 组
【发布时间】:2012-12-02 17:32:03
【问题描述】:

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

请看这里:http://jsfiddle.net/PbKYn/3/

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

我做错了什么?谢谢-

【问题讨论】:

  • 如果我单击其中一个手柄并尝试将整个椭圆旋转 360°,我并没有完全遵循。你想要这个吗?
  • @philipp 不,这是错误之一,除了在 0 度左右闪烁。单击的控制点应位于鼠标下方。

标签: html svg rotation d3.js transform


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多