irc_web/.svn/pristine/3e/3ef9e19e2c5bbdf4921ccd292b1...

29 lines
776 B
Plaintext

/**
* Return the Vector of a line which determines its inclination and length
*
* @param {number} columnPixelSpacing Width that a pixel represents in mm
* @param {number} rowPixelSpacing Height that a pixel represents in mm
* @param {*} startPoint Start point of the line
* @param {*} endPoint End point of the line
*
* @returns {*} Resulting line inclination vector
*/
export default function getLineVector(
columnPixelSpacing,
rowPixelSpacing,
startPoint,
endPoint
) {
const dx = (startPoint.x - endPoint.x) * columnPixelSpacing
const dy = (startPoint.y - endPoint.y) * rowPixelSpacing
const length = Math.sqrt(dx * dx + dy * dy)
const vectorX = dx / length
const vectorY = dy / length
return {
x: vectorX,
y: vectorY,
length
}
}