Javascript 我能';t在node.js中的画布上写入一些文本值
我正在编写一个JSON转换器API,并使用canvas绘制一些图表。 在我的一些文本值中,标签元素没有写在画布上,但我可以用console.log读取它。我不知道问题出在哪里,也不知道如何解决。希望它将很容易修复,这是代码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
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,但它不起作用)