我一直在努力形成SVG中SVG形状居中的逻辑。 viewBox
比例函数很好,但是,我使用viewBox
与形状的居中对抗。SVG中的缩放与中心形状
下面是代码:
// SCALE & CENTRE THE TEMPLATE ON SCREEN
const svg = document.getElementsByTagName("svg")[ 0 ];
const t = document.getElementsByClassName("templateParent")[ 0 ];
const svgRect = svg.getBoundingClientRect(),
svgW = svgRect.width,
svgH = svgRect.height,
svgX = svgRect.x,
svgY = svgRect.y;
const aspectRatio = svgW/svgH;
const tRect = t.getBBox(),
tW = tRect.width,
tH = tRect.height,
tX = tRect.x,
tY = tRect.y;
const tmW = tW * 1.25,
tmH = tH * 1.25,
tmX = tX * 1.25,
tmY = tY * 1.25;
const vbH = tmH,
vbW = tmW * aspectRatio,
vbX = tmX * aspectRatio,
vbY = tmY;
我使用这种方法进行更多控制。将路径位置存储在数组中。将SVG中心转换值应用于路径元素。然后,每当您想要缩放时,按比例值将多个每个位置相关联。然后将每个位置映射到中心位置。然后重新绘制它。 – Adapter