Рисование кривых Безье с более чем 3 контрольными точками

Я знаю, что могу нарисовать кривую Безье с 3 контрольными точками, используя bezierCurveTo (). Как я могу нарисовать кривую Безье с более чем 3 контрольными точками? Я пробовал использовать сплайн из KineticJS (поскольку я могу указать столько точек, сколько хочу), но полученная кривая не похожа на кривую Безье (если, например, я установил только 3 точки). Могу ли я как-то соединить вместе больше квадратичных кривых Безье, чтобы получить кривую с более чем 3 контрольными точками?


person Adrian Buzea    schedule 13.01.2013    source источник
comment
Можете ли вы создать jsfiddle (на jsfiddle.net) с каким-нибудь кодом, и я постараюсь вам помочь?   -  person SoluableNonagon    schedule 14.01.2013
comment
а также видели ли вы: html5canvastutorials .com / labs /   -  person SoluableNonagon    schedule 14.01.2013


Ответы (1)


Допустим, у вас есть 3 кривые:

 curve1, curve2, and curve3

и вам нужна кривая, которая соединяет все кривые вместе, назовите ее:

 curve 4

С помощью kineticJS (в настоящее время 4.3.1) вы можете:

 var points1 = curve1.getPoints();
 var points2 = curve2.getPoints();
 var points3 = curve2.getPoints();
 var joined = points1.concat(points2,points3);

 curve4.setPoints(joined);
 // make sure to redraw the layer
person SoluableNonagon    schedule 17.01.2013