一开始用filleText总是显示不出来文字,很是郁闷,后来琢磨了下,原来fillText常用的三个参数的意思弄错了。
void (DOMString text, double x, double y, optional double maxWidth);
常用的形式是 fillText("要现实的文字",x,y),注意这里面的x,y代表的是哪个点的坐标。
例子如下
1 2 3 22 23 24 25 28 29
输出截图如下:
可以发现,后面的x,y参数其实是文字左下角的那个点的坐标。
所以如果代码改动如下时,什么文字都不会显示出来。
ctx.moveTo(10,100);//不变 ctx.lineTo(200,100);//不变 ctx.stroke();//不变 ctx.fillText('nihao',10,0);//原来的代码是 ctx.fillText('nihao',10,100),即改动了y坐标的值
想想为什么呢?
因为fillText的基线(textBaseline)就在坐标y=0的点上,而文字要写在基线之上,自然就超出canvas的上边界了,所以在canvas里什么也没有显示。
-----------------------------------------------------------------------------------------------
参考:
关于fillText的使用及实例请参考一下两个链接:
1.How to display text in canvas(比较全面)
(英文)
2.同时,也可以参考园子里一个写的很好的中文博客:
想了解更多:
关于fillText的详细参数请参阅官网: