【发布时间】:2019-07-23 17:18:32
【问题描述】:
我有一个用 Inkscape 制作的 SVG 路径(开关图标),我试图以编程方式围绕它自己的中心旋转 90 度。在我的适当网页中,我有许多这些图标都由那里的 ID 引用,因此这需要是我可以应用的通用解决方案。
看起来this 的问题是相同的,但 OP 从未跟进过,他们再也无法提供任何代码或小提琴。
我有一个小提琴 here,它显示了我的示例的所有内容。
knob = d3.select("#switch1")
knob.attr('transform', 'rotate(0 0 0)')
是我用于轮换的基本代码。我需要知道如何计算 x 和 y 值,以便可以使任何给定的图标指向示例中的开/关文本。或者使用d3 获得相同旋转效果的另一种方式
如果我这样做knob.attr('transform', 'rotate(90 0 0)'),那么图标就会从页面上消失——我认为0 0 是围绕其相对中心旋转?
如果我手动执行knob.attr('transform', 'rotate(90 15 15)'),我可以将其保留在页面上,但位置错误。
SVG 路径由;
<path
id="switch1"
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.12199998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 35.741778,27.194664 -1.082299,0 0,-8.512001 1.082299,-9e-6 z m -5.563199,-4.274211 a 5.00005,5.000032 0 0 0 9.999999,2e-5 5.00005,5.000032 0 1 0 -9.999999,-2e-5 z"
inkscape:connector-curvature="0" />
完整的 SVG 标记可以在小提琴上找到。
【问题讨论】:
标签: javascript d3.js svg inkscape