使用animateTransform时如何指定x-y旋转点?

2023-12-24

我想使用 animateTransform 连续旋转 SVG 图像。那么我们开始吧:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="1024px" height="768px" enable-background="new 0 0 100 100" xml:space="preserve">
    <g transform="translate(100, 100)">
        <rect fill="#FE9FFF" width="100px" height="100px">
            <animateTransform attributeName="transform" type="rotate"
                from="0" to="360" dur="20s" repeatDur="indefinite"/>
        </rect>
    </g>
</svg>

这有效。

现在:我想更改上面的内容,以便块围绕其中心而不是左上角旋转。我知道如果我想围绕其中心静态旋转块,我可以这样做:

<g transform="rotate(30, 50, 50)">
  <rect fill="#FE9FFF" width="100px" height="100px">
  </rect>
</g>

我的问题是 - 如何管理围绕块中心的连续动画旋转?我看过spec http://www.w3.org/TR/SVG/animate.html#AnimateTransformElement和几个其他相关问题 https://stackoverflow.com/questions/2437542/simulate-pivot-rotate-using-transform-in-svg就这样,但我在执行所提供的解释时遇到了困难。

提前致谢。


http://www.w3.org/TR/SVG/animate.html#AnimateTransformElement http://www.w3.org/TR/SVG/animate.html#AnimateTransformElement

“from”、“by”和“to”属性采用与给定转换类型可用的相同语法表示的值:
(...)
对于 type="rotate",每个单独的值表示为 [ ]

如果提供 2 个附加值 cx 和 cy,则可以指定旋转中心。

因此,对于您的代码段,我在“from”和“to”属性中添加“50 50”:

<rect fill="#FE9FFF" width="100px" height="100px">
    <animateTransform attributeName="transform" type="rotate"
        from="0 50 50" to="360 50 50" dur="20s" repeatDur="indefinite"/>
</rect>

它适用于最新版本的 Opera、Safari 和 Chrome,以及 Firefrox 4 Beta 和 Batik。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用animateTransform时如何指定x-y旋转点? 的相关文章

  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 旋转后,精灵和矩形位置在 Libgdx 中未对齐

    我有以下代码 其中紧密映射的精灵 矩形和多边形在 libgdx 中以相同角度旋转 旋转后矩形与精灵不对齐 虽然精灵在绘制时会旋转 但旋转后坐标和尺寸保持不变 矩形的情况并非如此 请参阅下面的代码和结果图 public void rotate
  • CSS 变换源不能与 translate() 一起使用

    我想将 div 从中心点移开 但似乎translate 不关心变换原点是什么 并使用元素的左上角来移动它 这是一个测试来证实这一点 div class items div class item 1 style width 100px hei
  • 如何部分或仅按百分比沿路径过渡

    我是 d3 的初学者 目前无法使用最新版本 但我使用的是 3 x 版本 我想要实现的应该很简单 但遗憾的是我没有找到有关如何做到这一点的资源 目标是在我的 svg 中显示一条路径 然后我想显示例如一个圆并沿着路径过渡 移动 追踪圆 如果我想
  • 当我更改浏览器选项卡时,Jquery Animate 停止

    我的投资组合中有一个疯狂的问题 http hericdk com http hericdk com 我用jquery做了一个简单的动画 一个太空飞船飞行的动画 然后就出现了我的作品 这个想法不错 大家都喜欢 但问题是 由于某种奇怪的原因 当
  • SVG 用事件触发动画

    如何通过 javascript 使用任意事件触发 svg 动画元素开始动画 我在想象类似的事情begin mySpecialEvent 然后我可以发送mySpecialEvent并且动画将开始 如果已经播放则再次开始 这是一篇涵盖您需要的文
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • 如何在 Bootstrap 3 中制作进度条动画?

    我正在尝试为 Bootstrap 进度条设置动画 但我不知道该怎么做 我得到了宽度的值但是console log bar width 返回宽度px但不是 如内联所示style width 90 我用代码重新创建了一个 bootply Boo
  • 使用 React.JS 检索和缓存 SVG 节点边界框​​的最佳方法

    我正在渲染带有标签的 SVG 组件 这些标签组件需要根据其文本内容 以及它们的大小 正确布局 以避免自身重叠 为了得到real每个标签的大小 看起来双重渲染每次更新标签内容时都需要 在标签组件级别 我需要 第一次渲染它 检索真实 SVG D
  • 使用 SVG 多边形元素

    我正在尝试使用 SVG 多边形和 javascript 我创建一个多边形并设置其初始点列表 如下所示 var polygon document createElementNS http www w3 org 2000 svg polygon
  • Android设置缩放动画的枢轴点

    我正在尝试将视图缩放到一定大小 但不太明白旋转是如何工作的 假设我只想向上缩放视图 pivotY 应该保持什么值 在 XML 中 它是一个百分比 以编程方式应用枢轴点时情况如何 Example ObjectAnimator scaleY O
  • 如何在页面之间重新初始化自定义js文件(Barba.js)?

    我有 Barba js 在我正在开发的网站上工作 我已经调试了一些其他问题 但我注意到我的 jS 没有在页面之间重新初始化 这不是预期的行为 请参阅下面的代码 出于 DRY 目的 我已删除了实际网站内容 索引 html
  • Svg getCompulatedTextLength 函数始终返回零

    你好 我尝试集成这个 d3 可缩放树形图 http mbostock github io d3 talk 20111018 treemap html http mbostock github io d3 talk 20111018 tree
  • Python:动画 3D 散点图变慢

    我的程序绘制了文件中每个时间步的粒子位置 不幸的是 尽管我使用了它 但它变得越来越慢matplotlib animation 瓶颈在哪里 我的两个粒子的数据文件如下所示 x y z t1 1 2 4 4 1 3 t2 4 0 4 3 2 9
  • 为 d3.js 中的多个元素生成 ClipPaths

    我正在尝试创建部分填充的圆圈 就像最终的 纽约时报 政治大会可视化中的圆圈一样 http www nytimes com interactive 2012 09 06 us politics convention word counts h
  • 如何正确中断使用 matplotlib 创建的动画?

    我想正确地中断动画 背景 我有一个封装到 tkinter 实例中的 matplotlib 图 动画 我希望当用户按下 tkinter 按钮时 动画必须停止 删除并重新启动 我正在中断旧动画 通过使用del fig在回调函数 由按钮调用 的开
  • 如何将路径添加到剪辑路径

    当尝试向图像添加波浪效果时 我陷入困境 这两个 SVG 一个包含我尝试实现的路径 第二个的行为符合预期 但剪辑路径 形状错误 当我粘贴到所需的路径时 它不起作用 为什么以及如何才能完成这项工作 期望的路径
  • 将 SVG 中的文本修剪为给定的像素宽度

    我正在 SVG 中绘制文本标签 我有一个可用的固定宽度 比如 200px 当文字太长时 如何修剪 理想的解决方案还会在文本被剪切的地方添加省略号 但没有它我也可以生活 使用 d3 库 溢出文本的包装函数 function wrap var
  • 如何在 Android 中对视图进行动画处理并让它保持在新的位置/大小?

    目前 我的 Android 应用程序中有一个视图 并且该视图正在播放帧动画 我想要动画视图以将其大小增加到 150 当我对其应用缩放动画并且缩放动画完成时 我希望查看器在活动生命周期的其余部分中保持新的尺寸 不幸的是 现在当放大动画完成时
  • 是否可以将 SVG 对象的自定义属性设置为数字而不是字符串?

    我正在为 SVG G 元素 SVG 组对象 分配人工属性 我通过 SVG 转换移动该组及其内容 并将该组的 x y 坐标及其宽度 高度存储在这些属性中 我正在使用 D3 Javascript 库和调用 embeddedElemContain

随机推荐