|
@@ -2900,7 +2900,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
|
|
.attr("class", "intra-link-group")
|
|
.attr("class", "intra-link-group")
|
|
|
.style("display", "none"); // 默认隐藏
|
|
.style("display", "none"); // 默认隐藏
|
|
|
|
|
|
|
|
- // 层内边路径生成函数(弧线统一向上,弧度递增避免重叠)
|
|
|
|
|
|
|
+ // 层内边路径生成函数(弧线统一向下,弧度递增避免重叠)
|
|
|
const intraLinkPath = d => {{
|
|
const intraLinkPath = d => {{
|
|
|
const src = d.srcNode;
|
|
const src = d.srcNode;
|
|
|
const tgt = d.tgtNode;
|
|
const tgt = d.tgtNode;
|
|
@@ -2910,7 +2910,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
|
|
const dy = tgt.y - src.y;
|
|
const dy = tgt.y - src.y;
|
|
|
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
|
|
|
|
|
|
- // 根据边的索引计算弧度(统一向上)
|
|
|
|
|
|
|
+ // 根据边的索引计算弧度(统一向下)
|
|
|
const baseArc = Math.min(dist * 0.2, 30);
|
|
const baseArc = Math.min(dist * 0.2, 30);
|
|
|
const arcStep = 20; // 每条边的弧度增量
|
|
const arcStep = 20; // 每条边的弧度增量
|
|
|
const arcIndex = d._arcIndex || 0;
|
|
const arcIndex = d._arcIndex || 0;
|
|
@@ -2919,8 +2919,8 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
|
|
const midX = (src.x + tgt.x) / 2;
|
|
const midX = (src.x + tgt.x) / 2;
|
|
|
const midY = (src.y + tgt.y) / 2;
|
|
const midY = (src.y + tgt.y) / 2;
|
|
|
|
|
|
|
|
- // 统一向上弯曲(Y减小)
|
|
|
|
|
- return `M${{src.x}},${{src.y}} Q${{midX}},${{midY - arcHeight}} ${{tgt.x}},${{tgt.y}}`;
|
|
|
|
|
|
|
+ // 统一向下弯曲(Y增大)
|
|
|
|
|
+ return `M${{src.x}},${{src.y}} Q${{midX}},${{midY + arcHeight}} ${{tgt.x}},${{tgt.y}}`;
|
|
|
}};
|
|
}};
|
|
|
|
|
|
|
|
// 层内边虚线配置(与左边一致)
|
|
// 层内边虚线配置(与左边一致)
|
|
@@ -3024,7 +3024,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
|
|
// 二次贝塞尔曲线 t=0.5 时的点: (1-t)²*P0 + 2*(1-t)*t*P1 + t²*P2
|
|
// 二次贝塞尔曲线 t=0.5 时的点: (1-t)²*P0 + 2*(1-t)*t*P1 + t²*P2
|
|
|
// = 0.25*src + 0.5*ctrl + 0.25*tgt
|
|
// = 0.25*src + 0.5*ctrl + 0.25*tgt
|
|
|
const midY = (d.srcNode.y + d.tgtNode.y) / 2;
|
|
const midY = (d.srcNode.y + d.tgtNode.y) / 2;
|
|
|
- const ctrlY = midY - arcHeight;
|
|
|
|
|
|
|
+ const ctrlY = midY + arcHeight; // 向下弯曲
|
|
|
return {{
|
|
return {{
|
|
|
x: (d.srcNode.x + d.tgtNode.x) / 2,
|
|
x: (d.srcNode.x + d.tgtNode.x) / 2,
|
|
|
y: 0.25 * d.srcNode.y + 0.5 * ctrlY + 0.25 * d.tgtNode.y
|
|
y: 0.25 * d.srcNode.y + 0.5 * ctrlY + 0.25 * d.tgtNode.y
|