SVG path 길이 계산기
SVG path의 d 속성(M/L/H/V/C/S/Q/T/A)을 넣으면 전체 경로 길이를 구합니다. stroke-dasharray로 선이 그려지는 애니메이션을 만들 때 필요한 값이라 CSS 스니펫까지 바로 복사할 수 있습니다.
M/L/H/V/C/S/Q/T/A/Z 명령을 지원합니다. path 태그 안 d 속성 값을 그대로 붙여 넣으세요.
전체 경로 길이
364.8865
좌표에 쓴 단위(px 등 SVG 사용자 단위)가 그대로 결과 단위입니다.
stroke-dasharray 애니메이션 스니펫
stroke-dasharray: 364.886; stroke-dashoffset: 364.886;
사용 방법
- 1SVG의 path 태그에 쓴 d 속성 값을 그대로 붙여 넣습니다(M/L/H/V/C/S/Q/T/A/Z 명령을 지원합니다).
- 2아래 미리보기에서 그려진 모양이 원본과 같은지 확인합니다.
- 3전체 길이와 stroke-dasharray/stroke-dashoffset CSS 스니펫을 복사해 선 그리기 애니메이션에 씁니다.
- 4직선·베지어·호 세그먼트별 개수와 길이 합계로 어느 구간이 긴지 확인할 수 있습니다.
자주 묻는 질문
d 속성을 M/L/H/V/C/S/Q/T/A/Z 명령 단위로 나눠 세그먼트별 길이를 구하고 모두 더합니다. 직선(L/H/V)은 두 점 사이 거리로 바로 나오지만, 3차 베지어(C/S)와 2차 베지어(Q/T)는 속도벡터 크기가 제곱근을 포함한 다항식이라 닫힌 식이 없어 수치적분(합성 심프슨 공식)으로 근사합니다. 타원 호(A)는 SVG 명세의 끝점→중심 매개변수 변환을 거친 뒤 같은 방식으로 적분합니다.
직선·베지어 구간은 상대오차 0.001% 이내로 사실상 같습니다. 다만 타원 호(A) 구간은 브라우저(Chromium 기준)가 정확한 적분 대신 호를 베지어로 근사한 뒤 그 폴리라인 길이를 더하는 방식(flattening)을 쓰기 때문에 0.01~0.5% 정도 차이가 날 수 있습니다. 이 계산기는 호의 중심 매개변수를 직접 구해 수치적분하므로, 예를 들어 정확한 원의 4분의 1호는 해석값(π×반지름÷2)과 소수점 9자리까지 일치합니다 — 오히려 이쪽이 더 정확한 값입니다.
path를 서서히 그려지는 것처럼 보이려면 stroke-dasharray와 stroke-dashoffset을 path 전체 길이와 같은 값으로 맞추고 dashoffset을 0까지 애니메이션합니다. 이 길이가 실제보다 짧으면 선이 끝까지 그려지지 않고, 길면 애니메이션 시작 전에 이미 일부가 보입니다. 브라우저 밖(빌드 타임, 디자인 도구)에서는 getTotalLength()를 쓸 수 없어 이런 계산기가 필요합니다.
M(이동) · L/H/V(직선) · C/S(3차 베지어) · Q/T(2차 베지어) · A(타원 호) · Z(닫기)를 모두 지원하고, 절대좌표(대문자)와 상대좌표(소문자) 둘 다 처리합니다. 여러 서브패스(path 중간에 M이 다시 나오는 경우)도 각각 길이를 더합니다.
SVG 명세를 그대로 따릅니다. 반지름이 음수면 절대값으로 바꾸고, 반지름이 0이면 직선으로 처리하며, 두 점을 잇기에 반지름이 너무 작으면 비율을 유지한 채 자동으로 키웁니다(실제 브라우저 렌더링과 같은 규칙입니다).
전송되지 않습니다. 모든 파싱과 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 좌표에 쓴 단위(px 등 SVG 사용자 단위)가 그대로 결과 단위가 됩니다.
- 곡선·호 길이는 세그먼트마다 구간 400개로 나눈 합성 심프슨 공식으로 근사합니다. 구간 수를 늘려도(1000개) 결과가 사실상 바뀌지 않는 것으로 수렴을 확인했습니다.
- 검증: 실제 크로미움 브라우저에 같은 path들을 그려 SVGGeometryElement.getTotalLength()와 대조했습니다. 직선·베지어는 상대오차 0.001% 이내, 원의 4분의 1호처럼 해석값이 있는 경우는 그 값과 소수점 9자리까지 일치함을 자동 테스트로 고정해 뒀습니다.
- 미리보기의 뷰박스는 앵커점·제어점(호는 각도를 표본추출한 점 포함)을 기준으로 여유를 두고 잡습니다 — 실제 렌더링과 미세하게 다를 수 있으니 최종 확인은 실제 SVG로 하세요.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 9일 · 결과는 참고용 추정치입니다.