dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
130 lines • 9.54 kB
JavaScript
/**
* @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=