SVG <path>

SVG 경로 - <path>

<path> 경로를 정의하는 요소입니다.

경로 데이터에 사용할 수 있는 명령어는 다음과 같습니다:

  • M = moveto(이동)
  • L = lineto(선으로)
  • H = horizontal lineto(왼쪽으로 가는 선)
  • V = vertical lineto(위로 가는 선)
  • C = curveto(곡선으로)
  • S = smooth curveto(원활한 곡선으로)
  • Q = quadratic Bézier curve(두차원 베제르 곡선)
  • T = smooth quadratic Bézier curveto(원활한 두차원 베제르 곡선)
  • A = elliptical Arc(椭圆形 궤도)
  • Z = closepath(경로 닫기)

주의: 위의 모든 명령은 소문자로도 표현할 수 있습니다. 대문자는 절대 위치를, 소문자는 상대 위치를 나타냅니다.

예제 1

아래의 예제는 시작 위치가 150,0인 경로를 정의하며, 그 다음 75,200 위치로 이어지는 선을 그린 다음, 그곳에서 225,200 위치로 이어지는 선을 그리고 마지막으로 경로를 150,0으로 돌아가서 닫습니다.

이 SVG 코드는 다음과 같습니다:

<svg height="210" width="400">
  <path d="M150 0 L75 200 L225 200 Z" />
</svg>

직접 시도해 보세요

예제 2

베제르 곡선(Bézier curves)는 무한으로 축소할 수 있는 원활한 곡선 모델링에 사용됩니다. 일반적으로 사용자는 두 개의 끝점과 하나 또는 두 개의 제어점을 선택합니다. 하나의 제어점을 가진 베제르 곡선은 두차원 베제르 곡선(quadratic Bézier curve)이라고 불리며, 두 개의 제어점을 가진 베제르 곡선은 삼차원 베제르 곡선(cubic)이라고 합니다.

다음은 두 번째 베塞尔 곡선을 생성하는 예입니다. A와 C는 시작점과 종점이며, B는 제어점입니다:

A B C

이 SVG 코드는 다음과 같습니다:

<svg height="400" width="450">
  <path id="lineAB" d="M 100 350 l 150 -300" stroke="red" stroke-width="3" fill="none" />
  <path id="lineBC" d="M 250 50 l 150 300" stroke="red" stroke-width="3" fill="none" />
  <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" fill="none" />
  <path d="M 100 350 q 150 -300 300 0" stroke="blue" stroke-width="5" fill="none" />
  <!-- 标记相关的点 -->
  <g stroke="black" stroke-width="3" fill="black">
    <circle id="pointA" cx="100" cy="350" r="3" />
    <circle id="pointB" cx="250" cy="50" r="3" />
    <circle id="pointC" cx="400" cy="350" r="3" />
  </g>
  <!-- 给点添加标签 -->
  <g font-size="30" font-family="sans-serif" fill="black" stroke="none"
  text-anchor="middle">
    <text x="100" y="350" dx="-30">A</text>
    <text x="250" y="50" dy="-10">B</text>
    <text x="400" y="350" dx="30">C</text>
  </g>
</svg>

직접 시도해 보세요

매우 복잡하죠? 네!!!경로를 그리는 것이 매우 복잡하기 때문에, 복잡한 그래픽을 생성하기 위해 SVG 편집기를 사용하는 것이 강력히 권장됩니다.