Как нарисовать квадратную кривую линию между двумя текстовыми объектами в пределах HTML5-холста? - PullRequest
1 голос
/ 21 июля 2010

Цель по предмету.

фрагмент кода:

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
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
*/

У меня очень ограниченное понимание квадратичной изогнутой линии

Ответы [ 2 ]

3 голосов
/ 23 июля 2011

Вы должны использовать quadraticCurveTo для квадратичных кривых, bezierCurveTo - для кубических кривых.

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

См. Кривые Безье и квадратичные в руководстве по холсту.

3 голосов
/ 22 июля 2010

Изменить строку

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

до

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

и тебе надо идти.

...