Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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
Javascript 绕D3弧的一侧_Javascript_D3.js_Svg_Graphics_Vector Graphics - Fatal编程技术网

Javascript 绕D3弧的一侧

Javascript 绕D3弧的一侧,javascript,d3.js,svg,graphics,vector-graphics,Javascript,D3.js,Svg,Graphics,Vector Graphics,我正在使用D3.js的内置arc函数为我的数据生成SVGs .attr("d", function(element, index) { var arc = d3.arc() .innerRadius(iR) .outerRadius(iR + 10) .startAngle(element[1]) .endAngle(element[2]) .cornerRadius(isRounded ? cR : 0)

我正在使用D3.js的内置arc函数为我的数据生成SVG
s

.attr("d", function(element, index) {

    var arc = d3.arc()
        .innerRadius(iR)
        .outerRadius(iR + 10)
        .startAngle(element[1])
        .endAngle(element[2])
        .cornerRadius(isRounded ? cR : 0);

    return arc();

});
这很好用,但我想绕某些圆弧的一侧(两个角)。但是,当角半径随
.cornerRadius()
一起提供时,它会环绕所有四个角

我知道有一些方法可以选择性地使矩形的角变圆,但我希望有一些通用的方法可以使圆弧变圆


我还看到了关于只舍入圆弧的一些角,但它没有答案(D3V4自从发布以来就已经出来了)

即使使用
v4
API,仍然没有直接的方法来实现这一点。查看源代码,拐角半径成为计算整个圆弧(所有4个拐角)的固定值。最简单的修复方法是为每个数据点添加两条弧,第二条弧只填充角点

例如,假设我们有一个非常圆的圆弧:

var myArcs=[
[0, 45],
[180, 300]
];
var vis=d3。选择('主体')
.append('svg')
.attr('width',400)
.attr('height',400);
var arc=d3.arc()
.内半径(80)
.外层(150)
var someArcs=vis.selectAll('path')
.数据(myArcs)
.enter();
某些弧
.append(“路径”)
.attr(“转换”、“翻译(200200)”)
.attr(“d”,函数(d){
弧度startAngle(d[0]*(Math.PI/180))
.端角(d[1]*(数学PI/180))
.转弯半径(20);
返回弧();
})
.attr(“填充”,函数(d,i){
返回d3.schemeCategory10[i];
});

这不适用于使用alpha的笔划和填充颜色。