Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 我能';t在node.js中的画布上写入一些文本值_Javascript_Node.js_Canvas_Canvasjs - Fatal编程技术网

Javascript 我能';t在node.js中的画布上写入一些文本值

Javascript 我能';t在node.js中的画布上写入一些文本值,javascript,node.js,canvas,canvasjs,Javascript,Node.js,Canvas,Canvasjs,我正在编写一个JSON转换器API,并使用canvas绘制一些图表。 在我的一些文本值中,标签元素没有写在画布上,但我可以用console.log读取它。我不知道问题出在哪里,也不知道如何解决。希望它将很容易修复,这是代码 var nodename = json.kmap.elements.nodes[nodeIndex].data.name; console.log(nodename); ctx.font = "35px Arial"; ctx.textAlign = "center"; if

我正在编写一个JSON转换器API,并使用canvas绘制一些图表。 在我的一些文本值中,标签元素没有写在画布上,但我可以用console.log读取它。我不知道问题出在哪里,也不知道如何解决。希望它将很容易修复,这是代码

var nodename = json.kmap.elements.nodes[nodeIndex].data.name;
console.log(nodename);
ctx.font = "35px Arial";
ctx.textAlign = "center";
if (nodename.length > 25){
    var strcut = nodename.indexOf(" ", 25);
    if (strcut != -1){
        var nodename1 = nodename.slice(0, strcut);
        var nodename2 = nodename.slice(strcut, nodename.length);
        ctx.globalAlpha = alpha;
        ctx.fillStyle = '#444444';
        ctx.fillRect(xpos - ctx.measureText(nodename1).width / 2, ypos - (45 * multip) - 30,ctx.measureText(nodename1).width, 35);
        ctx.fillRect(xpos - ctx.measureText(nodename2).width / 2, ypos - (30 * multip) - 30,ctx.measureText(nodename2).width, 35);
        ctx.globalAlpha = 1;
        ctx.fillStyle = '#555555';
        ctx.fillText(nodename1, xpos , ypos - (45 * multip));
        ctx.fillText(nodename2, xpos , ypos - (30 * multip));
    }
} else {
    ctx.globalAlpha = alpha;
    ctx.fillStyle = '#444444';
    ctx.fillRect(xpos - ctx.measureText(nodename).width / 2, ypos - (30 * multip) - 30,ctx.measureText(nodename).width, 35);
    ctx.globalAlpha = 1;
    ctx.fillStyle = '#555555';
    ctx.fillText(nodename, xpos, ypos - (30 * multip));
}
ctx.beginPath();
ctx.arc(xpos, ypos, radius, 0, 2*Math.PI);
ctx.fillStyle = '#a3d039';
ctx.fill();

哪些标签没有写?您是否检查了计算出的坐标,以确定它们是否会导致文本定位在画布之外?扩展@Teemu comment,尝试将坐标硬编码到画布的中心。。。你也在用全局alpha做一些事情,确保它不会消失。除了一些随机点(它在foreach循环中,我有60多个带有文本的点)外,几乎每个节点的代码都有效,而硬编码坐标不起作用。每次我想要清除某个东西时,我都会重置alpha(我也尝试将alpha变量设置为1,但它不起作用),哪些标签没有写入?您是否检查了计算出的坐标,以确定它们是否会导致文本定位在画布之外?扩展@Teemu comment,尝试将坐标硬编码到画布的中心。。。你也在用全局alpha做一些事情,确保它不会消失。除了一些随机点(它在foreach循环中,我有60多个带有文本的点)外,几乎每个节点的代码都有效,而硬编码坐标不起作用。每次我想要清理某个东西时,我都会重置alpha(我还尝试将alpha变量设置为1,但它不起作用)