Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dart:svg中创建路径_Svg_Dart - Fatal编程技术网

在dart:svg中创建路径

在dart:svg中创建路径,svg,dart,Svg,Dart,我对使用Dart还不熟悉,我一直在尝试移植一些使用svg的javascript代码,创建一个包含一些片段的路径,但我很难理解它的API是如何工作的 下面的代码不会运行,但它可能说明了我想做的事情: Element i=query(“#divsvg”); svg.SvgSvgElement s=new svg.SvgSvgElement(); i、 附加(s); svg.PathElement p=new svg.PathElement(); p、 pathSegList.add( p、 crea

我对使用Dart还不熟悉,我一直在尝试移植一些使用svg的javascript代码,创建一个包含一些片段的路径,但我很难理解它的API是如何工作的

下面的代码不会运行,但它可能说明了我想做的事情:

Element i=query(“#divsvg”);
svg.SvgSvgElement s=new svg.SvgSvgElement();
i、 附加(s);
svg.PathElement p=new svg.PathElement();
p、 pathSegList.add(
p、 createSvgPathSegArcAbs(200、200、50、50、180、false、false)
);
s、 增加(p);
然而,据我从文件中了解:

  • createSvgPathSegArcAbs创建非父路径段
  • pathSegList是最终的,所以在构建之后不能添加到它
  • PathElement构造函数似乎不接受任何参数
我是否遗漏了Dart的工作原理,或者svg库文档中的某些内容?我花了几个小时查看文档、谷歌搜索和测试,但我没有找到任何内容(测试似乎使用HTML代码而不是API创建内容)

任何能为我指明正确方向的东西都将不胜感激

更新

我花了更多的时间研究函数,pathSegList的“最终性”不应该阻止它被更改(它不是常量),只是被替换了

但是,如果您尝试调用诸如“add”之类的各种函数,它们会显式地实现,但会出现异常,而一些函数(如append)是本机实现的

根据调试器:

p.pathSegList.append(
    p.createSvgPathSegArcAbs(200, 200, 50, 50, 180, false, false)
);
将附加一个路径段,但这不会出现在“innerHTML”属性中,也不会出现在最终的HTML页面中


我开始认为svg支持还没有“完成”,我有点想把它移植到画布和/或WebGL。

我能够创建一个path元素,并使用以下方法将路径段添加到其中:

作为参考,这里是一个从原始输入创建整个svg标记的示例,但我找不到动态svg或通过API进行操作的示例。
var div = query('#container');
var svgElement = new svg.SvgSvgElement();
div.append(svgElement);
path = new svg.PathElement();
svgElement.append(path);

segList = path.pathSegList;

segList.appendItem(path.createSvgPathSegMovetoAbs(50, 50));
segList.appendItem(path.createSvgPathSegArcAbs(200, 200, 50, 50, 180, false, false));
segList.appendItem(path.createSvgPathSegClosePath());