UNPKG

dbweb-common

Version:

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

130 lines 9.54 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 {?} */ var a = x1 - x2; /** @type {?} */ var 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 {?} */ var k = (y1 - y2) / (x1 - x2); /** @type {?} */ var 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 {?} */ var xArr = []; /** @type {?} */ var 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 {?} */ var 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 {?} */ var kbArr = binaryEquationGetKB(x1, y1, x2, y2); /** @type {?} */ var k = kbArr[0]; /** @type {?} */ var b = kbArr[1]; /** @type {?} */ var aX = 1 + k * k; /** @type {?} */ var bX = 2 * k * (b - n) - 2 * m; /** @type {?} */ var cX = m * m + (b - n) * (b - n) - r * r; /** @type {?} */ var insertPoints = []; /** @type {?} */ var xArr = quadEquationGetX(aX, bX, cX); xArr.forEach((/** * @param {?} x * @return {?} */ function (x) { /** @type {?} */ var y = k * x + b; insertPoints.push({ x: x, y: y }); })); return insertPoints; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cmljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3VzZXJpbmZvL3BvcnRyYWl0LWVkaXQvcG9ydHJhaXQtbWFzay9nZW9tZXRyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLG9CQUdDOzs7SUFGQSxrQkFBVTs7SUFDVixrQkFBVTs7Ozs7Ozs7OztBQUVYLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDakYsT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7Ozs7Ozs7O0FBQ0QsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVOztRQUNoRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7O1FBQ1gsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO0lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDOzs7Ozs7Ozs7OztBQU1ELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVOztRQUMzRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDOztRQUN6QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDekMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNmLENBQUM7Ozs7Ozs7OztBQUtELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7O1FBQ3pELElBQUksR0FBRyxFQUFFOztRQUNULE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDekMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM5QztTQUFNLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU9ELE1BQU0sVUFBVSxrQ0FBa0MsQ0FDakQsRUFBVSxFQUNWLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBVSxFQUNWLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUztJQUVULGdCQUFnQjtJQUNoQixJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7O1lBQ1IsR0FBRyxHQUFZLEVBQUU7UUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixPQUFPLEdBQUcsQ0FBQztLQUNYOzs7UUFFSyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDOztRQUMzQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzs7UUFDWixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzs7UUFFWixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDOztRQUNkLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDOztRQUM1QixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzs7UUFFdEMsWUFBWSxHQUFZLEVBQUU7O1FBQzFCLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQUMsT0FBTzs7OztJQUFDLFVBQUEsQ0FBQzs7WUFDUCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUMsRUFBQyxDQUFDO0lBQ0gsT0FBTyxZQUFZLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBQb2ludCB7XHJcblx0eDogbnVtYmVyO1xyXG5cdHk6IG51bWJlcjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcG9pbnRJbkNpY2xlKHg6IG51bWJlciwgeTogbnVtYmVyLCBtOiBudW1iZXIsIG46IG51bWJlciwgcjogbnVtYmVyKTogYm9vbGVhbiB7XHJcblx0cmV0dXJuIGRpc3RhbmNlKHgsIHksIG0sIG4pIDw9IHI7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RhbmNlKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpOiBudW1iZXIge1xyXG5cdGNvbnN0IGEgPSB4MSAtIHgyO1xyXG5cdGNvbnN0IGIgPSB5MSAtIHkyO1xyXG5cdHJldHVybiBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XHJcbn1cclxuLyoqXHJcbiAqIOaxguS6jOWFg+S4gOasoeaWueeoi+eahOezu+aVsFxyXG4gKiB5MSA9IGsgKiB4MSArIGIgPT4gayA9ICh5MSAtIGIpIC8geDFcclxuICogeTIgPSBrICogeDIgKyBiID0+IHkyID0gKCh5MSAtIGIpIC8geDEpICogeDIgKyBiXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYmluYXJ5RXF1YXRpb25HZXRLQih4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKSB7XHJcblx0Y29uc3QgayA9ICh5MSAtIHkyKSAvICh4MSAtIHgyKTtcclxuXHRjb25zdCBiID0gKHgxICogeTIgLSB4MiAqIHkxKSAvICh4MSAtIHgyKTtcclxuXHRyZXR1cm4gW2ssIGJdO1xyXG59XHJcbi8qKlxyXG4gKiDkuIDlhYPkuozmrKHmlrnnqIvmsYLmoLlcclxuICogYXjCsiArIGJ4ICsgYyA9IDBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBxdWFkRXF1YXRpb25HZXRYKGE6IG51bWJlciwgYjogbnVtYmVyLCBjOiBudW1iZXIpIHtcclxuXHRjb25zdCB4QXJyID0gW107XHJcblx0Y29uc3QgcmVzdWx0ID0gTWF0aC5wb3coYiwgMikgLSA0ICogYSAqIGM7XHJcblx0aWYgKHJlc3VsdCA+IDApIHtcclxuXHRcdHhBcnIucHVzaCgoLWIgKyBNYXRoLnNxcnQocmVzdWx0KSkgLyAoMiAqIGEpKTtcclxuXHRcdHhBcnIucHVzaCgoLWIgLSBNYXRoLnNxcnQocmVzdWx0KSkgLyAoMiAqIGEpKTtcclxuXHR9IGVsc2UgaWYgKHJlc3VsdCA9PT0gMCkge1xyXG5cdFx0eEFyci5wdXNoKC1iIC8gKDIgKiBhKSk7XHJcblx0fVxyXG5cdHJldHVybiB4QXJyO1xyXG59XHJcbi8qKlxyXG4gKiDmsYLlnIblkoznm7Tnur/kuYvpl7TnmoTkuqTngrlcclxuICog55u057q/5pa556iL77yaeSA9IGt4ICsgYlxyXG4gKiDlnIbnmoTmlrnnqIvvvJooeCAtIG0pwrIgKyAoeCAtIG4pwrIgPSBywrJcclxuICogeDEsIHkxID0g57q/5Z2Q5qCHMSwgeDIsIHkyID0g57q/5Z2Q5qCHMiwgbSwgbiA9IOWchuWdkOaghywgciA9IOWNiuW+hFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEluc2VydFBvaW50QmV0d2VlbkNpcmNsZUFuZExpbmUoXHJcblx0eDE6IG51bWJlcixcclxuXHR5MTogbnVtYmVyLFxyXG5cdHgyOiBudW1iZXIsXHJcblx0eTI6IG51bWJlcixcclxuXHRtOiBudW1iZXIsXHJcblx0bjogbnVtYmVyLFxyXG5cdHI6IG51bWJlclxyXG4pIHtcclxuXHQvLyDlnoLnm7TnmoTmsqHmnInmlpznjofvvIzopoHnibnmrorliKTmlq1cclxuXHRpZiAoeDEgPT09IHgyKSB7XHJcblx0XHRjb25zdCBhcnI6IFBvaW50W10gPSBbXTtcclxuXHRcdGFyci5wdXNoKHsgeDogeDEsIHk6IG4gKyByIH0pO1xyXG5cdFx0YXJyLnB1c2goeyB4OiB4MSwgeTogbiAtIHIgfSk7XHJcblx0XHRyZXR1cm4gYXJyO1xyXG5cdH1cclxuXHQvLyBjb25zb2xlLmxvZyh4MSwgeTEsIHgyLCB5MiwgbSwgbiwgcilcclxuXHRjb25zdCBrYkFyciA9IGJpbmFyeUVxdWF0aW9uR2V0S0IoeDEsIHkxLCB4MiwgeTIpO1xyXG5cdGNvbnN0IGsgPSBrYkFyclswXTtcclxuXHRjb25zdCBiID0ga2JBcnJbMV07XHJcblxyXG5cdGNvbnN0IGFYID0gMSArIGsgKiBrO1xyXG5cdGNvbnN0IGJYID0gMiAqIGsgKiAoYiAtIG4pIC0gMiAqIG07XHJcblx0Y29uc3QgY1ggPSBtICogbSArIChiIC0gbikgKiAoYiAtIG4pIC0gciAqIHI7XHJcblxyXG5cdGNvbnN0IGluc2VydFBvaW50czogUG9pbnRbXSA9IFtdO1xyXG5cdGNvbnN0IHhBcnIgPSBxdWFkRXF1YXRpb25HZXRYKGFYLCBiWCwgY1gpO1xyXG5cdHhBcnIuZm9yRWFjaCh4ID0+IHtcclxuXHRcdGNvbnN0IHkgPSBrICogeCArIGI7XHJcblx0XHRpbnNlcnRQb2ludHMucHVzaCh7IHg6IHgsIHk6IHkgfSk7XHJcblx0fSk7XHJcblx0cmV0dXJuIGluc2VydFBvaW50cztcclxufVxyXG4iXX0=