开发者

How to draw a quadratic curved line between two text objects within a HTML5 canvas?

Goal per subject.

code snip:

var canvas= document.getElementById('myCanvas');
var ctx= canvas.getContext('2d');   
canvas.width= 520;
canvas.height= 405;
ctx.font = "15pt Verdana";
ctx.lineWidth = 1;

// text 1
ctx.fillText("me and my dog puddie", 210, 90);  
// text 2开发者_JAVA百科
ctx.fillText("you and many many crazy nuts", 210, 130); 
// draw a quadratic bezier curved line between the these 2 text blocks
ctx.strokeStyle = "rgb(65,60,50)";
ctx.beginPath();
ctx.moveTo(210,100);
ctx.bezierCurve(230,250,130,160,160,100);
ctx.stroke();

/* outcome:
no line were drawn between these two text objects
*/

I have a very limited understanding of a quadratic curved line


Change the line

ctx.bezierCurve(230,250,130,160,160,100);

to

ctx.bezierCurveTo(230,250,130,160,160,100);

and you should be good to go.


You should use quadraticCurveTo for quadratic curves, bezierCurveTo is for cubic curves.

ctx.beginPath();
ctx.moveTo(210,100); // move to the start
ctx.quadraticCurveTo(230, 130, 160, 100); // draw quadractic curve
ctx.stroke();

See Bezier and quadratic curves in the Canvas Tutorial.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜