gpt4 book ai didi

javascript - 如何从嵌入的外部 svg 文件初始化 d3 svg 元素并对其进行操作

转载 作者:行者123 更新时间:2023-11-30 06:34:41 25 4
gpt4 key购买 nike

svg 文档作为文件嵌入。

svg 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svgPic"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="New document 18">
<g
id="curvLayer"
inkscape:label="Curv"
inkscape:groupmode="layer">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2.0162099,44.937652 C 19.928085,44.362124 23.033712,29.671999 33.839655,29.657316 44.913406,29.332988 44.178722,15.232728 60.486296,15.244392"
id="path4373"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
</g>
</svg>

这是带有 javascript 的 html,我在其中尝试使用 d3 操作 svg。但没有成功。

<body>
<embed src="berg4.svg" type="image/svg+xml" id="svgpic"/>

<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>

<script type="text/javascript" charset="utf-8">

var subdoc = document.getElementById("svgPic").getSVGDocument();
var curvLayer = subdoc.getElementById("curvLayer");
var myPoint = d3.select("#curvLayer").append("svg:circle")
.attr("cx", x) //e.g. x = 100
.attr("cy", y) //e.g. y = 100
.attr("r", 4.5);
</script>
</body>

问题是,如何向这个 svg 添加一个像圆这样的新元素?

最佳答案

我发现您的代码存在两个问题:

  1. 选择您的元素:您正在使用 document.getElementByIDD3.select,这是不必要的 - 您可以使用 CSS selectors 选择只有 D3 的元素:

    d3.select("#curvLayer")
  2. 设置 cxcy 属性:您正在设置附加的圆 cxcy 属性为 'x' 和 'y',但这些未在您的代码中预先定义。尝试设置为静态值或事先定义 x 和 y:

    .append("circle")
    .attr("cx", 10)
    .attr("cy", 10)
    .attr("r", 4.5);

jsfiddle 进行了这些更新:http://jsfiddle.net/qAHC2/308/

关于javascript - 如何从嵌入的外部 svg 文件初始化 d3 svg 元素并对其进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com