UNPKG

dbweb-common

Version:

用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上

130 lines 9.58 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @record */ function Point() { } if (false) { /** @type {?} */ Point.prototype.x; /** @type {?} */ Point.prototype.y; } /** * @param {?} x * @param {?} y * @param {?} m * @param {?} n * @param {?} r * @return {?} */ export function pointInCicle(x, y, m, n, r) { return distance(x, y, m, n) <= r; } /** * @param {?} x1 * @param {?} y1 * @param {?} x2 * @param {?} y2 * @return {?} */ export function distance(x1, y1, x2, y2) { /** @type {?} */ const a = x1 - x2; /** @type {?} */ const b = y1 - y2; return Math.sqrt(a * a + b * b); } /** * 求二元一次方程的系数 * y1 = k * x1 + b => k = (y1 - b) / x1 * y2 = k * x2 + b => y2 = ((y1 - b) / x1) * x2 + b * @param {?} x1 * @param {?} y1 * @param {?} x2 * @param {?} y2 * @return {?} */ export function binaryEquationGetKB(x1, y1, x2, y2) { /** @type {?} */ const k = (y1 - y2) / (x1 - x2); /** @type {?} */ const b = (x1 * y2 - x2 * y1) / (x1 - x2); return [k, b]; } /** * 一元二次方程求根 * ax² + bx + c = 0 * @param {?} a * @param {?} b * @param {?} c * @return {?} */ export function quadEquationGetX(a, b, c) { /** @type {?} */ const xArr = []; /** @type {?} */ const result = Math.pow(b, 2) - 4 * a * c; if (result > 0) { xArr.push((-b + Math.sqrt(result)) / (2 * a)); xArr.push((-b - Math.sqrt(result)) / (2 * a)); } else if (result === 0) { xArr.push(-b / (2 * a)); } return xArr; } /** * 求圆和直线之间的交点 * 直线方程:y = kx + b * 圆的方程:(x - m)² + (x - n)² = r² * x1, y1 = 线坐标1, x2, y2 = 线坐标2, m, n = 圆坐标, r = 半径 * @param {?} x1 * @param {?} y1 * @param {?} x2 * @param {?} y2 * @param {?} m * @param {?} n * @param {?} r * @return {?} */ export function getInsertPointBetweenCircleAndLine(x1, y1, x2, y2, m, n, r) { // 垂直的没有斜率,要特殊判断 if (x1 === x2) { /** @type {?} */ const arr = []; arr.push({ x: x1, y: n + r }); arr.push({ x: x1, y: n - r }); return arr; } // console.log(x1, y1, x2, y2, m, n, r) /** @type {?} */ const kbArr = binaryEquationGetKB(x1, y1, x2, y2); /** @type {?} */ const k = kbArr[0]; /** @type {?} */ const b = kbArr[1]; /** @type {?} */ const aX = 1 + k * k; /** @type {?} */ const bX = 2 * k * (b - n) - 2 * m; /** @type {?} */ const cX = m * m + (b - n) * (b - n) - r * r; /** @type {?} */ const insertPoints = []; /** @type {?} */ const xArr = quadEquationGetX(aX, bX, cX); xArr.forEach((/** * @param {?} x * @return {?} */ x => { /** @type {?} */ const y = k * x + b; insertPoints.push({ x: x, y: y }); })); return insertPoints; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cmljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3VzZXJpbmZvL3BvcnRyYWl0LWVkaXQvcG9ydHJhaXQtbWFzay9nZW9tZXRyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLG9CQUdDOzs7SUFGQSxrQkFBVTs7SUFDVixrQkFBVTs7Ozs7Ozs7OztBQUVYLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDakYsT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7Ozs7Ozs7O0FBQ0QsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVOztVQUNoRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7O1VBQ1gsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO0lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDOzs7Ozs7Ozs7OztBQU1ELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVOztVQUMzRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDOztVQUN6QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDekMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNmLENBQUM7Ozs7Ozs7OztBQUtELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7O1VBQ3pELElBQUksR0FBRyxFQUFFOztVQUNULE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDekMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM5QztTQUFNLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU9ELE1BQU0sVUFBVSxrQ0FBa0MsQ0FDakQsRUFBVSxFQUNWLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBVSxFQUNWLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUztJQUVULGdCQUFnQjtJQUNoQixJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7O2NBQ1IsR0FBRyxHQUFZLEVBQUU7UUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixPQUFPLEdBQUcsQ0FBQztLQUNYOzs7VUFFSyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDOztVQUMzQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzs7VUFDWixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzs7VUFFWixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDOztVQUNkLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDOztVQUM1QixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzs7VUFFdEMsWUFBWSxHQUFZLEVBQUU7O1VBQzFCLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQUMsT0FBTzs7OztJQUFDLENBQUMsQ0FBQyxFQUFFOztjQUNWLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDbkIsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxFQUFDLENBQUM7SUFDSCxPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFBvaW50IHtcclxuXHR4OiBudW1iZXI7XHJcblx0eTogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBwb2ludEluQ2ljbGUoeDogbnVtYmVyLCB5OiBudW1iZXIsIG06IG51bWJlciwgbjogbnVtYmVyLCByOiBudW1iZXIpOiBib29sZWFuIHtcclxuXHRyZXR1cm4gZGlzdGFuY2UoeCwgeSwgbSwgbikgPD0gcjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGlzdGFuY2UoeDE6IG51bWJlciwgeTE6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlcik6IG51bWJlciB7XHJcblx0Y29uc3QgYSA9IHgxIC0geDI7XHJcblx0Y29uc3QgYiA9IHkxIC0geTI7XHJcblx0cmV0dXJuIE1hdGguc3FydChhICogYSArIGIgKiBiKTtcclxufVxyXG4vKipcclxuICog5rGC5LqM5YWD5LiA5qyh5pa556iL55qE57O75pWwXHJcbiAqIHkxID0gayAqIHgxICsgYiA9PiBrID0gKHkxIC0gYikgLyB4MVxyXG4gKiB5MiA9IGsgKiB4MiArIGIgPT4geTIgPSAoKHkxIC0gYikgLyB4MSkgKiB4MiArIGJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBiaW5hcnlFcXVhdGlvbkdldEtCKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpIHtcclxuXHRjb25zdCBrID0gKHkxIC0geTIpIC8gKHgxIC0geDIpO1xyXG5cdGNvbnN0IGIgPSAoeDEgKiB5MiAtIHgyICogeTEpIC8gKHgxIC0geDIpO1xyXG5cdHJldHVybiBbaywgYl07XHJcbn1cclxuLyoqXHJcbiAqIOS4gOWFg+S6jOasoeaWueeoi+axguaguVxyXG4gKiBheMKyICsgYnggKyBjID0gMFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1YWRFcXVhdGlvbkdldFgoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlcikge1xyXG5cdGNvbnN0IHhBcnIgPSBbXTtcclxuXHRjb25zdCByZXN1bHQgPSBNYXRoLnBvdyhiLCAyKSAtIDQgKiBhICogYztcclxuXHRpZiAocmVzdWx0ID4gMCkge1xyXG5cdFx0eEFyci5wdXNoKCgtYiArIE1hdGguc3FydChyZXN1bHQpKSAvICgyICogYSkpO1xyXG5cdFx0eEFyci5wdXNoKCgtYiAtIE1hdGguc3FydChyZXN1bHQpKSAvICgyICogYSkpO1xyXG5cdH0gZWxzZSBpZiAocmVzdWx0ID09PSAwKSB7XHJcblx0XHR4QXJyLnB1c2goLWIgLyAoMiAqIGEpKTtcclxuXHR9XHJcblx0cmV0dXJuIHhBcnI7XHJcbn1cclxuLyoqXHJcbiAqIOaxguWchuWSjOebtOe6v+S5i+mXtOeahOS6pOeCuVxyXG4gKiDnm7Tnur/mlrnnqIvvvJp5ID0ga3ggKyBiXHJcbiAqIOWchueahOaWueeoi++8mih4IC0gbSnCsiArICh4IC0gbinCsiA9IHLCslxyXG4gKiB4MSwgeTEgPSDnur/lnZDmoIcxLCB4MiwgeTIgPSDnur/lnZDmoIcyLCBtLCBuID0g5ZyG5Z2Q5qCHLCByID0g5Y2K5b6EXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zZXJ0UG9pbnRCZXR3ZWVuQ2lyY2xlQW5kTGluZShcclxuXHR4MTogbnVtYmVyLFxyXG5cdHkxOiBudW1iZXIsXHJcblx0eDI6IG51bWJlcixcclxuXHR5MjogbnVtYmVyLFxyXG5cdG06IG51bWJlcixcclxuXHRuOiBudW1iZXIsXHJcblx0cjogbnVtYmVyXHJcbikge1xyXG5cdC8vIOWeguebtOeahOayoeacieaWnOeOh++8jOimgeeJueauiuWIpOaWrVxyXG5cdGlmICh4MSA9PT0geDIpIHtcclxuXHRcdGNvbnN0IGFycjogUG9pbnRbXSA9IFtdO1xyXG5cdFx0YXJyLnB1c2goeyB4OiB4MSwgeTogbiArIHIgfSk7XHJcblx0XHRhcnIucHVzaCh7IHg6IHgxLCB5OiBuIC0gciB9KTtcclxuXHRcdHJldHVybiBhcnI7XHJcblx0fVxyXG5cdC8vIGNvbnNvbGUubG9nKHgxLCB5MSwgeDIsIHkyLCBtLCBuLCByKVxyXG5cdGNvbnN0IGtiQXJyID0gYmluYXJ5RXF1YXRpb25HZXRLQih4MSwgeTEsIHgyLCB5Mik7XHJcblx0Y29uc3QgayA9IGtiQXJyWzBdO1xyXG5cdGNvbnN0IGIgPSBrYkFyclsxXTtcclxuXHJcblx0Y29uc3QgYVggPSAxICsgayAqIGs7XHJcblx0Y29uc3QgYlggPSAyICogayAqIChiIC0gbikgLSAyICogbTtcclxuXHRjb25zdCBjWCA9IG0gKiBtICsgKGIgLSBuKSAqIChiIC0gbikgLSByICogcjtcclxuXHJcblx0Y29uc3QgaW5zZXJ0UG9pbnRzOiBQb2ludFtdID0gW107XHJcblx0Y29uc3QgeEFyciA9IHF1YWRFcXVhdGlvbkdldFgoYVgsIGJYLCBjWCk7XHJcblx0eEFyci5mb3JFYWNoKHggPT4ge1xyXG5cdFx0Y29uc3QgeSA9IGsgKiB4ICsgYjtcclxuXHRcdGluc2VydFBvaW50cy5wdXNoKHsgeDogeCwgeTogeSB9KTtcclxuXHR9KTtcclxuXHRyZXR1cm4gaW5zZXJ0UG9pbnRzO1xyXG59XHJcbiJdfQ==