javascript - Raphael.js 中的缩放和旋转

标签 javascript raphael

我不明白 Raphael.js 转换函数是如何工作的。我有以下代码:

var paper = new Raphael(0,0,1000,1000);
var rect = paper.rect(0,0,40,40);
rect.transform("s2,2,0,0t30,30");

变换的结果是每个轴移动 60 px,而不是 30。为什么缩放会影响变换?

最佳答案

If a list of transforms is provided, then the net effect is as if each transform had been specified separately in the order provided.例如,

var rect = paper.rect(0,0,40,40);
rect.transform("s2,2,0,0t30,30");

在功能上等同于以下 SVG 标记(尽管这实际上并不是 raphael 将生成的内容)

<g transform="scale(2)">
  <g transform="translate(30,30)">
    <rect x="0" y="0" width="30" height="30"/>
  </g>
</g>

因此,从内到外,我们从位于 x1, y1, x2, y2 = 0,0,30,30 的矩形开始,该矩形位于翻译后的 <g> 中。将其移动到 30, 30, 60, 60,然后按比例缩放 <g>它将结果缩放为 60, 60, 120, 120,即 60 像素的平移。

关于javascript - Raphael.js 中的缩放和旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905893/

相关文章:

javascript - 如何更新数组中的对象详细信息?

javascript - 删除 For Loop/If 内的 undefined

canvas - Raphael js使用canvas还是svg?

javascript - 如何重置 SVG 转换(即将 SVG 对象返回到其原始状态)?

javascript - 如何调试肉桂小程序?

javascript - JavaScript 中返回值和返回表达式有区别吗?

jquery - 使用 jQuery.on 时,SVG 元素不会触发 mouseenter/mouseleave 事件

css - 我可以使用 Raphael.js 库用 VML 圆替换带有 css 圆 Angular 的 div 吗?

javascript - 拖动时将 raphaelJS 对象对齐到 div

javascript - 在 MongoDB 和 Mongoose 中将 JSON 文档替换为另一个,而无需事先了解 JSON 文档的属性