Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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.js翻转甜甜圈下半部分的文本(圆弧)_Javascript_Regex_D3.js - Fatal编程技术网

Javascript D3.js翻转甜甜圈下半部分的文本(圆弧)

Javascript D3.js翻转甜甜圈下半部分的文本(圆弧),javascript,regex,d3.js,Javascript,Regex,D3.js,我跟着。我做到了最后一部分,但是对于我的数据,代码不起作用(我将在后面解释) 这是到目前为止的一段代码。我已经对翻转文本以使其正常工作的部分进行了注释 if (d.endAngle > 90 * Math.PI/180) { var startLoc = /M(.*?)A/, middleLoc = /A(.*?)0 0 1/, endLoc = /0 0 1 (.*?)$/; var newStart = endLoc.e

我跟着。我做到了最后一部分,但是对于我的数据,代码不起作用(我将在后面解释)

这是到目前为止的一段代码。我已经对翻转文本以使其正常工作的部分进行了注释

if (d.endAngle > 90 * Math.PI/180) {
   var startLoc     = /M(.*?)A/,        
   middleLoc    = /A(.*?)0 0 1/,
   endLoc       = /0 0 1 (.*?)$/;
   var newStart = endLoc.exec( newArc )[1];
   var newEnd = startLoc.exec( newArc )[1];
   var middleSec = middleLoc.exec( newArc )[1];
   newArc = "M" + newStart + "A" + middleSec + "0 0 0 " + newEnd;
}
到目前为止,我还不明白正则表达式是关于什么的(甚至在本部分之前,比如
var firstArcSection=/(^.+?)L/;
)。唯一的因素应该是角度,然后我们只需将文本旋转180度,然后将其放置在圆弧周围,再次朝向正确的方向

以下是数据:

var donutData = [
        {name: "firstArc", value: 16},
        {name: "secondArc", value: 9},
        {name: "thirdArc",  value: 2},
        {name: "fourthArc", value: 62},
        {name: "fifthArc", value: 23},
        {name: "sixthArc", value: 21}
];
这是我的问题:如果我将“thirdArc”的值更改为20,或者更改其他值,则上述代码在某些配置中有效。有些案例有效,有些则无效(
endLoc.exec(newArc)[1];
变得未定义)

我也看到了,但我不知道是什么原因导致文本在底部翻转,因为没有关于角度或起点和终点的内容


我的问题是如何翻转第一部分下半部分的文本,以及正则表达式的用途是什么?

我们最近刚刚讨论了同一个示例。指定大于180度的圆弧时会发生错误。请看一看,以获得更多的见解。这甚至可能是该问题的真实副本,但我不能将其标记为真实副本,因为该问题尚未得到公认的答案。我们最近刚刚讨论了同一个例子。指定大于180度的圆弧时会发生错误。请看一看,以获得更多的见解。它甚至可能是该问题的真实副本,但我不能将其标记为真实副本,因为该问题尚未得到公认的答案。