나는 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 center translate 값을 적용합니다. 크기를 조정할 때마다 배율 값으로 각 위치를 배수하십시오. 그런 다음 각 위치를 가운데 위치에 매핑합니다. 그런 다음 다시 그립니다. – Adapter