Tengo el punto c , que representa el centro de un círculo. Después de arrastrar el círculo, quiero que su coordenada y hmm se ajuste a una línea que se dibuja entre los puntos a y b . ¿Cómo hmm ?
Hasta ahora he podido encontrar el valor medio de y entre los puntos a y b . Sin embargo, no está teniendo en cuenta el valor x del punto c .:
const snapYToLine = (aY, bY) => { const yDist = bY - aY; return aY + (yDist * 0.5); } const a = { x: 10, y: 10 }; const b = { x: 50, y: 30 }; const c = { x: 20, y: 0 }; // not doing anything with this yet... const hmm = snapYToLine(ay, by); // will need to include cx here... console.log(hmm);La coordenada X de C depende de dónde la arrastre, pero la coordenada Y debería ser para que el punto permanezca en la línea entre A y B
La ecuación de línea entre 2 puntos (A y B): (x - Xa) / (Xa - Xb) = (y - Ya) / (Ya - Yb) .
Entonces hmm = (x - Xa) * (Ya - Yb) / (Xa - Xb) + Ya .
Debido a que es una ecuación de línea, puede arrastrar el punto C sobre las coordenadas A / B X y aún encontrar el valor Y correspondiente.
Espero haber entendido bien tu pregunta.