javascript - d3.js 画线源和目标不同(从 d3.svg.arc() 生成的圆弧到具有基数位置的节点)

标签 javascript svg d3.js automatic-ref-counting line

我尝试在sunburst内添加一些带有矩形的文本

对于Sunburst,内圆弧环,x,y代表 Angular 和半径,然而,sunburst内部的矩形由Cardinal位置表示

对于绘制线条,我知道我可以使用 d3.svg.line 或 d3.svg.diagonal。但它们的源和目标是同一类型。

但就我而言,目标 中的 x,y 是不同的。

我该怎么办?

我知道我可以将内部矩形更改为圆弧位置,以便源和目标可以匹配。

但是有什么好的方法可以做到这一点吗?

如有任何建议,我们将不胜感激。

最佳答案

自定义 d3.svg.diagonal() 的源和目标。 使用不同的方法变换源和目标的空间。

var diagonal = d3.svg.diagonal()
                        .source(function (d) {
                            var innerRadius = Math.max(0, y(d.source.y));
                            var arcCenter = x(d.source.x + d.source.dx/2.0);

                            return {"x": innerRadius * Math.cos(Math.PI - arcCenter),      //radial space
                                "y": innerRadius * Math.sin(Math.PI - arcCenter)};
                        })
                        .target(function (d) {                                           //normal space
                            return {"x": d.target.y + rect_height / 2,
                                "y": d.source.x ? d.target.x : d.target.x + rect_width};
                        })
                        .projection(function (d) {
                            return [d.y, d.x];
                        });

关于javascript - d3.js 画线源和目标不同(从 d3.svg.arc() 生成的圆弧到具有基数位置的节点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825049/

相关文章:

javascript - LogBox 忽略在 native react 中不起作用的警告?

javascript - 通过以点开头的 CSS 类名获取元素

javascript - 为什么 Chrome 在使用 jQuery Draggable 时会删除 SVG 上的图像图案?

maps - geojson 圈子,支持与否?

javascript - 如何在 PHP 中获取日期输出

javascript - 选中复选框时如何使文本字段可编辑?

jquery - 使用 Javascript 缩放 svg 路径

html - 如何更改 svg 文件的路径颜色?

javascript - 未捕获的类型错误 : Cannot read property 'axis' of undefined

javascript - 如何在不附加它的情况下创建 "svg"对象?