HTML5 SVG

HTML5 SVG(Scalable Vector Graphics)


SVG의 개념과 장점(Concept and Advantages of SVG)

SVG(Scalable Vector Graphics)는 XML 기반의 벡터 이미지 포맷으로, 해상도에 독립적인 이미지를 생성하고 조작할 수 있습니다. SVG는 벡터 그래픽이기 때문에 크기를 조정해도 품질이 저하되지 않으며, 자바스크립트와 CSS를 이용하여 스타일링 및 애니메이션 효과를 추가할 수 있습니다.

장점:

  1. 해상도 독립성: 크기를 조정해도 품질이 저하되지 않음.
  2. 검색 가능: 텍스트로 저장되어 검색 엔진이 읽을 수 있음.
  3. 편집 가능: XML 파일이므로 쉽게 편집 가능.
  4. 상호작용성: 자바스크립트와 CSS를 사용하여 상호작용 및 애니메이션 추가 가능.

SVG 요소와 속성(SVG Elements and Attributes)

SVG는 다양한 도형 요소와 속성을 사용하여 그래픽을 그릴 수 있습니다. 대표적인 SVG 요소는 <svg>, <rect>, <circle>, <ellipse>, <line>, <polygon> 등이 있습니다.

예제: SVG 기본 설정

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>SVG 기본 설정</title>
</head>
<body>
    <h1>SVG 기본 설정</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <!-- SVG 콘텐츠는 여기에 삽입 -->
    </svg>
</body>
</html>

기본 도형 그리기(Drawing Basic Shapes): <rect>, <circle>, <ellipse>, <line>, <polygon>

예제: 사각형 그리기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>사각형 그리기</title>
</head>
<body>
    <h1>사각형 그리기</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <rect x="50" y="50" width="150" height="100" fill="red" />
    </svg>
</body>
</html>

예제: 원 그리기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>원 그리기</title>
</head>
<body>
    <h1>원 그리기</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <circle cx="200" cy="200" r="50" fill="blue" />
    </svg>
</body>
</html>

예제: 타원 그리기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>타원 그리기</title>
</head>
<body>
    <h1>타원 그리기</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <ellipse cx="200" cy="200" rx="100" ry="50" fill="green" />
    </svg>
</body>
</html>

예제: 선 그리기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>선 그리기</title>
</head>
<body>
    <h1>선 그리기</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <line x1="50" y1="50" x2="350" y2="350" stroke="black" stroke-width="2" />
    </svg>
</body>
</html>

예제: 다각형 그리기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>다각형 그리기</title>
</head>
<body>
    <h1>다각형 그리기</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <polygon points="200,10 250,190 160,210" fill="purple" />
    </svg>
</body>
</html>

SVG를 HTML 문서에 삽입하기(Inserting SVG into HTML Document)

SVG는 여러 가지 방법으로 HTML 문서에 삽입할 수 있습니다.

예제: 인라인 SVG

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>인라인 SVG</title>
</head>
<body>
    <h1>인라인 SVG</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <rect x="50" y="50" width="150" height="100" fill="red" />
    </svg>
</body>
</html>

예제: <img> 태그를 사용하여 SVG 삽입

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>img 태그를 사용하여 SVG 삽입</title>
</head>
<body>
    <h1>img 태그를 사용하여 SVG 삽입</h1>
    <img src="path_to_svg_image.svg" alt="SVG 이미지" />
</body>
</html>

예제: 배경 이미지로 SVG 사용

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>배경 이미지로 SVG 사용</title>
    <style>
        .svg-background {
            width: 400px;
            height: 400px;
            background-image: url('path_to_svg_image.svg');
        }
    </style>
</head>
<body>
    <h1>배경 이미지로 SVG 사용</h1>
    <div class="svg-background"></div>
</body>
</html>

SVG 애니메이션(SVG Animation)

SVG는 애니메이션을 구현하기 위한 다양한 방법을 제공합니다. CSS 애니메이션과 함께 <animate> 요소를 사용하여 SVG 내부에서 직접 애니메이션을 정의할 수 있습니다.

예제: <animate> 요소를 사용한 애니메이션

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>SVG 애니메이션</title>
</head>
<body>
    <h1>SVG 애니메이션</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <circle cx="200" cy="200" r="50" fill="blue">
            <animate attributeName="cx" from="50" to="350" dur="5s" repeatCount="indefinite" />
        </circle>
    </svg>
</body>
</html>

예제: CSS를 사용한 SVG 애니메이션

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>CSS를 사용한 SVG 애니메이션</title>
    <style>
        .moving-circle {
            animation: move 5s infinite alternate;
        }

        @keyframes move {
            from {
                cx: 50;
            }
            to {
                cx: 350;
            }
        }
    </style>
</head>
<body>
    <h1>CSS를 사용한 SVG 애니메이션</h1>
    <svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
        <circle class="moving-circle" cx="50" cy="200" r="50" fill="blue" />
    </svg>
</body>
</html>

SVG는 HTML5에서 강력한 그래픽 도구로, 해상도에 독립적인 벡터 이미지를 생성하고 조작할 수 있습니다. 다양한 도형을 그리고, 애니메이션을 적용하여 인터랙티브하고 다이나믹한 웹 페이지를 만들 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *