Я рисую квадратную кривую между двумя точками, а затем нахожу случайную точку на этой кривой.Я хочу выделить изогнутую часть между случайной точкой и конечной точкой.
Поэтому я подумываю найти другую контрольную точку между случайной точкой и конечной точкой, а затем нарисовать еще одну квадратичную кривую с другим штрихомцвет поверх исходной кривой.
Можно ли найти такую точку или нет?Или есть другой способ выполнить эту задачу?
Вот фрагмент кода, над которым я работаю:
var startpoint = {x: 50, y: 50}; // Red
var endpoint = {x: 50, y: 250}; // Green
var controlpoint = {x: 100, y: 150}; // Blue
var t = 0.75;
var randompoint = {
x: (1 - t) * (1 - t) * startpoint.x + 2 * (1 - t) * t * controlpoint.x + t * t * endpoint.x,
y: (1 - t) * (1 - t) * startpoint.y + 2 * (1 - t) * t * controlpoint.y + t * t * endpoint.y
}; // Orange
context.beginPath();
context.moveTo(startpoint.x, startpoint.y);
context.quadraticCurveTo(controlpoint.x, controlpoint.y, endpoint.x, endpoint.y);
context.stroke();
Вот рабочий код, следующий за ответом MBo
function lerp(a, b, t)
{
var _t = 1 - t;
return {
x: a.x * _t + b.x * t,
y: a.y * _t + b.y * t
};
}
var newpoint = lerp(controlpoint, endpoint, t);
context.beginPath();
context.moveTo(randompoint.x, randompoint.y);
context.quadraticCurveTo(newpoint.x, newpoint.y, endpoint.x, endpoint.y);
context.stroke();