본문 바로가기
programming/Graphics

svg 사각형 그리기 draw rectangle

by 개코 - 개발과 코딩 2021. 8. 31.

svg 로 원을 그리는 것과 같이 사각형을 그리는 것도 어렵지 않다. 원은 circle 태그를 사용했지만, 사각형은 svg 태그와 rect 태그를 사용한다. 속성값이 조금 난해할 수 있지만 원과 의미는 같다.

 

svg 사각형 그리기
draw rectangle

svg로 사각형을 그리기 위해서 사용되는 태그는 svg 태그와 rect 태그이다.

사각형을 그리는 기본 태그 형식은 아래와 같다.

<svg>
	<rect>
</svg>

기본 형식은 위와 같다.

속성은 찾아보면 되는 것이기에 주요 태그만 작성했다.

 

실제로 사각형을 그려보도록 하자.

<html>
    <body>

        <h1>SVG 사각형 그리기</h1>

        <svg width="400" height="400">
            <rect x="50" y="20" width="150" height="150" style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.1;stroke-opacity:0.9" />
        </svg>

    </body>
</html>

svg 의 좌표계 너비와 높이는 각각 400 이고 사각형의 너비와 높이는 150이다.

이전에 원을 그릴 때는 속성에 직접 원의 속성값을 설정했지만 이번에는 스타일로 적용을 시켜본다.

svg 태그 속성

  • svg
    벡터 기반 이미지를 그린다.
  • width
    svg 이미지의 가로 ( 너비 ) 크기를 지정한다.
  • height
    svg 이미지의 세로 ( 높이 ) 크기를 지정한다.

rect 태그 속성

  • rect
    svg 에서 사용할 사각형을 그린다.
  • width
    직사각형의 너비를 지정한다.
  • height
    직사각형의 높이를 지정한다.
  • x
    사각형의 위치를 x좌표만큼 이동시킨다.
  • y
    사각형의 위치를 y좌표만큼 이동시킨다.

style 속성

  • fill
    배경색을 지정한다.
  • stroke
    외곽선 색을 지정한다.
  • stroke-width
    외곽선 굵기를 지정한다.
  • opacity
    투명도를 지정한다.

 

직사각형 모서리 둥글게

직사각형의 모서리에 곡선을 주어 둥글게 표시하고 싶다면 rect 태그에 rx ry 속성을 지정하면 된다.

rx 는 설정값 만큼의 반지름을 가지며, ry는 설정값 만큼의 높이를 가진다.

rx와 ry 값이 동일하게 설정된 경우와 그렇지 않은 경우를 비교하면 이해할 수 있다.

<html>
    <body>

        <h1>SVG 사각형 그리기</h1>

        <svg width="400" height="180">
            <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
        </svg>

        <svg width="400" height="180">
            <rect x="50" y="20" rx="40" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
        </svg>

        <svg width="400" height="180">
            <rect x="50" y="20" rx="20" ry="40" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
        </svg>

    </body>
</html>

위의 코드에서 rx와 ry 값이 동일한 경우 한쪽만 큰 경우까지 작성하여 3가지 경우를 작성하였다.

결과화면을 보자

사각형을 차례대로 비교하면 이해할 수 있다.

결과화면을 보면 알 수 있다.

  • 첫번째 경우 rx = ry
  • 두번째 경우 rx > ry 
  • 세번째 경우 rx < ry

느낌이 조금씩 다르다.

svg 를 이용하여 그래픽적인 사각형을 쓸 때 이 효과는 자주 사용되기도 한다.

물론 비례적으로 보면 일관적 표현이 더 안정감있게 사용되겠지만 말이다.

반응형

댓글