Я не могу написать какое-то текстовое значение на холсте в node.js - PullRequest
1 голос
/ 07 мая 2020

Я программирую API-интерфейс JSON конвертера и использую холст для рисования диаграмм. В одном из моих текстовых значений элементы меток не написаны на холсте, но я могу прочитать его с помощью 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();
...