css - 围绕任意点旋转 (svg, css),无需 transform-origin

标签 css math svg rotation transformation

我想旋转,例如围绕某个点的 svg-rect 而不使用 transform-origin,比如只使用链式平移和(原点)旋转。

根据我的研究,我发现你是这样做的:

  1. 将旋转点平移到原点
  2. 旋转
  3. 重做(1),说把它翻译回来

但是当我使用

transform="translate(-100, -50) rotate(30)  translate(100, 50)"

结果是渲染在错误的位置相比

transform="rotate(30, 100, 50)"

我为此做了一个 fiddle :http://jsfiddle.net/VYmrX/ .蓝色的矩形是原始矩形,绿色的是比较用的,红色的是用上面的方法改造的。我希望它围绕其中心 (100, 50) 旋转。

如何在不使用 transform-origin 的情况下获得它?

最佳答案

你快到了,但恰恰相反,

transform="translate(100, 50) rotate(30) translate(-100, -50)"

等价于transform="rotate(30, 100, 50)"

您需要从右到左阅读多个转换,因为它是 rightmost part that is applied first .

关于css - 围绕任意点旋转 (svg, css),无需 transform-origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111772/

相关文章:

javascript - ChartJS 折线图在顶部和底部被 chop

c# - .NET 4 中的 Math.Round() 行为

html - SVG <clipPath> 适合容器并使用 % 单位

html - 我如何使用 less/css 只影响没有其他内容的段落中的 imgs?

css - 在使用重写规则的框架中,如何最好地集成 CSS 和 JS?

math - 绘制大多数输入数据很小但具有较大异常值的图表

html - SVG/PNG 未在 Firefox 中显示

html - 缩放无纵横比的 SVG 图像

asp.net - ASPNET修改html

javascript - 在 html Canvas 中从线 Angular 和 x 正轴创建基于圆