【问题标题】:Rectangle coordinates after transform变换后的矩形坐标
【发布时间】:2011-07-28 11:52:03
【问题描述】:

我目前正在绘制一个矩形,并在其父元素 (g) 上进行了转换。 生成的 svg 是这样的;

<svg version="1.1" width="1055" height="381">
   <g transform="rotate(120)">
      <rect x="0" y="0" width="100" height="100" rx="10" ry="0" stroke-width="0" style="stroke:rgb(0,0,0)" id="rect-0"></rect>
      <rect x="100" y="0" width="100" height="100" rx="10" ry="0" stroke-width="0" style="stroke:rgb(0,0,0)" id="rect-1"></rect>
   </g>
</svg> 

现在我正在尝试动态检索 rects 之一的坐标,但使用 getBBox 不会返回正确的结果。谁能告诉我如何获得其中一个矩形的正确 x、y、宽度和高度属性?

【问题讨论】:

    标签: javascript html svg


    【解决方案1】:

    我自己找到了解决方案;

    var matrix = shape.getCTM();
    
    // transform a point using the transformed matrix
    var position = svg.createSVGPoint();
    position.x = $(shape).attr("x");
    position.y = $(shape).attr("y");
    position = position.matrixTransform(matrix);
    

    【讨论】:

    • 我一直在寻找 3 天,正是这个功能,哈哈。我不知道为什么其他答案不使用它。
    • 注意它返回的是屏幕空间坐标,而不是实际转换后的世界空间坐标。
    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2012-02-08
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多