2

我正在尝试用 Dart 翻译 SVG 中的椭圆。除了 SetAttribute 方式之外,我还没有找到任何关于如何做到这一点的解释

ellipse.setAttribute('transform', 'translate($acx, $acy)');

我发现 EllipseElement 有这样的符号:

ellipse.transform.baseVal[...].setTranslate(acx,acy);

..但它不起作用。我完全不确定 setTranslate 是如何工作的,我想我必须告诉要翻译哪个元素,但我不知道如何翻译。使用 setATtribute 而不是尝试使用其他方法更好吗?

4

1 回答 1

1

我成功尝试了

ellipse.setAttribute('transform', 'translate(150, 150)');

如果您transform使用创建属性,setAttribute则以下内容也可以使用

ellipse.transform.baseVal.first.setTranslate(20, 100);

或者您可以添加一个Transform如此问题的答案所示Dart create and transform an SVG path

Matrix m = new svg.SvgSvgElement().createSvgMatrix();
Matrix m2 = m.translate(50, 50);
Transform tr = ellipse.transform.baseVal.createSvgTransformFromMatrix(m2);
ellipse.transform.baseVal.appendItem(tr);

您可以设置颜色

ellipse.style.setProperty('fill', '#07f');
于 2014-01-02T09:05:10.763 回答