I think that this should do:
function differ(no1, no2, no3,amount) {
return no1 + ((no2 - no1) * no3 / amount);
}
function linePointOnBezier(p1,p2,p3,p4,noOfLines) {
var t = 0;
var points = [];
for(var t = 0; t <= noOfLines; t++) {
var l2 = { //layer 2
p1: {
x: differ(p1.x, p2.x, t, noOfLines),
y: differ(p1.y, p2.y, t, noOfLines),
},
p2: {
x: differ(p2.x, p3.x, t, noOfLines),
y: differ(p2.y, p3.y, t, noOfLines),
},
p3: {
x: differ(p3.x, p4.x, t, noOfLines),
y: differ(p3.y, p4.y, t, noOfLines),
},
};
var l3 = { //layer 3
p1: {
x: differ(l2.p1.x, l2.p2.x, t, noOfLines),
y: differ(l2.p1.y, l2.p2.y, t, noOfLines),
},
p2: {
x: differ(l2.p2.x, l2.p3.x, t, noOfLines),
y: differ(l2.p2.y, l2.p3.y, t, noOfLines),
},
};
var point = [
differ(l3.p1.x, l3.p2.x, t, noOfLines),
differ(l3.p1.y, l3.p2.y, t, noOfLines),
];
points.push(point);
}
return points;
}
