@arwes/bgs
Version:
Futuristic Sci-Fi UI Web Framework
31 lines (30 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDistanceFromOriginToCornerProgress = void 0;
const getDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
return Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
};
const getDistanceFromOriginToCornerProgress = (width, height, x1, y1, origin) => {
switch (origin) {
case 'left':
return x1 / width;
case 'right':
return 1 - x1 / width;
case 'top':
return y1 / height;
case 'bottom':
return 1 - y1 / height;
case 'center':
origin = [0.5, 0.5];
break;
}
const [x2Percentage, y2Percentage] = origin;
const x2 = width * x2Percentage;
const y2 = height * y2Percentage;
const distanceFromOrigin = getDistanceBetweenTwoPoints(x1, y1, x2, y2);
const x3 = x2 < width / 2 ? width : 0;
const y3 = y2 < height / 2 ? height : 0;
const maxDistanceToCorner = getDistanceBetweenTwoPoints(x2, y2, x3, y3);
return distanceFromOrigin / maxDistanceToCorner;
};
exports.getDistanceFromOriginToCornerProgress = getDistanceFromOriginToCornerProgress;