myprint-design
Version:
操作简单,组件丰富的一站式打印解决方案打印设计器
90 lines (84 loc) • 3.51 kB
JavaScript
;
var d3Selection = require('d3-selection');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var d3Selection__namespace = /*#__PURE__*/_interopNamespaceDefault(d3Selection);
function computeLineAngle(lineA, lineB) {
var dx1 = lineA.end.x - lineA.start.x;
var dy1 = lineA.end.y - lineA.start.y;
var dx2 = lineB.end.x - lineB.start.x;
var dy2 = lineB.end.y - lineB.start.y;
var angle1 = Math.atan2(dy1, dx1);
var angle2 = Math.atan2(dy2, dx2);
var angle = angle2 - angle1;
if (angle < 0) {
angle += 2 * Math.PI;
}
return angle;
}
function rad2Ang(angle) {
return angle * (180 / Math.PI);
}
function rotatePoint(centerX, centerY, x, y, angle) {
return {
x: centerX + Math.cos(angle) * (x - centerX) - Math.sin(angle) * (y - centerY),
y: centerY + Math.sin(angle) * (x - centerX) + Math.cos(angle) * (y - centerY)
};
}
function dist(p, m) {
if (!m) {
return 0;
}
return Math.sqrt((p[0] - m.x) ** 2 + (p[1] - m.y) ** 2);
}
function updateSvg(chart, svgOptions, draw) {
const element = svgOptions.element;
const chartSvg = d3Selection__namespace.select(chart);
const path = draw(chartSvg);
if (path) {
chartSvg.select(".u-path").style("stroke", element.option.color ? element.option.color : "black").style("fill", element.option.background ? element.option.background : "none").attr("opacity", element.option.opacity != void 0 ? element.option.opacity : 1).attr("d", path);
}
if (svgOptions.drawAuxiliary) {
if (svgOptions.allPoint) {
chartSvg.selectAll(".u-point").style("stroke", "var(--drag-h-color)").style("fill", "var(--drag-h-color)").style("display", null).data(svgOptions.allPoint).join(
(enter) => enter.append("g").classed("u-point", true).style("fill", "white").call((g) => {
g.append("circle").attr("r", 3);
})
).attr("transform", (d) => `translate(${[d.x, d.y]})`);
}
if (svgOptions.virtualPoint) {
chartSvg.selectAll(".uv-point").style("stroke", "var(--dnb-highlight-color)").style("fill", "var(--dnb-highlight-color)").style("display", null).data(svgOptions.virtualPoint).join(
(enter) => enter.append("g").classed("uv-point", true).style("fill", "white").call((g) => {
g.append("circle").attr("r", 3);
})
).attr("transform", (d) => `translate(${[d.x, d.y]})`);
}
if (svgOptions.controlLine) {
chartSvg.selectAll(".u-line").style("stroke", "#aaa").style("display", null).style("stroke-dasharray", "2 2").data(svgOptions.controlLine).join("line").attr("x1", (d) => d.start.x).attr("y1", (d) => d.start.y).attr("x2", (d) => d.end.x).attr("y2", (d) => d.end.y).classed("u-line", true);
}
} else {
chartSvg.selectAll(".u-point").style("display", "none");
chartSvg.selectAll(".uv-point").style("display", "none");
chartSvg.selectAll(".u-line").style("display", "none");
}
}
exports.computeLineAngle = computeLineAngle;
exports.dist = dist;
exports.rad2Ang = rad2Ang;
exports.rotatePoint = rotatePoint;
exports.updateSvg = updateSvg;
//# sourceMappingURL=svgUtil.js.map