diff --git a/frontend/src/NetworkMapUnifi.jsx b/frontend/src/NetworkMapUnifi.jsx index 95177e9..95cdc22 100644 --- a/frontend/src/NetworkMapUnifi.jsx +++ b/frontend/src/NetworkMapUnifi.jsx @@ -217,7 +217,10 @@ export default function NetworkMapUnifi({ servers = [], connections = [], pingMa const len = Math.hypot(ddx, ddy) || 1; const ux = ddx / len; const uy = ddy / len; - const stub = 22; // длина прямого участка перед узлами + + // Длина прямого участка и величина изгиба зависят от расстояния между узлами, + // чтобы при маленьких расстояниях не было «ломаных» и самопересечений. + const stub = Math.min(22, len / 3); // Точки начала/конца дуги (после прямых участков) const csx = sx + ux * stub; @@ -227,7 +230,7 @@ export default function NetworkMapUnifi({ servers = [], connections = [], pingMa const mx = (csx + cex) / 2; const my = (csy + cey) / 2; - const baseOffset = 40; + const baseOffset = Math.min(40, len / 2); const perpX = (-ddy / len) * baseOffset; const perpY = (ddx / len) * baseOffset; const cpx = mx + perpX;