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.
精彩评论