HTML5 SVG 2D 소개 7 - SVG Elements_html5 튜토리얼 기술의 재사용 및 참조
앞서 많은 그래픽 요소를 소개했는데, 많은 그래픽 자체가 동일하다면 매번 새로운 그래픽 요소를 정의해야 합니까? 그래픽을 좀 공유해볼까요? 이 섹션의 초점은 SVG 요소의 재사용입니다.
결합된-g 요소
g 요소는 이와 같은 방식으로 관련 그래픽 요소 그룹을 전체로 결합하는 컨테이너입니다. 이 요소는 일반적으로 문서에 대한 구조적 정보를 제공하기 위해 desc 및 title 요소와 함께 사용할 수 있습니다. 잘 구조화된 문서는 일반적으로 읽기 쉽고 효율적으로 렌더링됩니다. 간단한 예를 살펴보세요.
width="4.98cm "height="4.98cm"
fill="none"Stroke="blue" 스트로크-너비=".02cm"/>
몇 가지 사항에 유의하세요
:
1.xmlns="http://www.w3.org/2000/svg"는 전체 svg 요소의 기본 네임스페이스가 svg임을 나타냅니다. 이는 모호성이 없으면 생략할 수 있습니다. svg 문서는 XML 문서이므로 XML 네임스페이스의 관련 규칙이 여기에 적용됩니다. 예를 들어 svg 표시에 대한 네임스페이스를 지정하고 네임스페이스에 대한 별칭을 제공하는 등의 작업을 수행할 수 있습니다.
3. 결합된 그래픽 요소에는 단일 요소처럼 ID 값이 부여될 수 있습니다. 이러한 방식으로 필요한 경우(예: 애니메이션 및 요소 그룹 재사용) 이 ID 값만 참조하면 됩니다. 4. 그래픽 요소 그룹을 결합하면 해당 요소 그룹의 관련 속성(채우기, 획, 변형 등)을 균일하게 설정할 수 있습니다. 이는 조합이 사용되는 시나리오이기도 합니다.
Template-symbol 요소
symbol 요소는 그래픽 템플릿을 정의하는 데 사용됩니다(템플릿에는 많은 그래픽이 포함될 수 있음). 템플릿의 기능은 g 요소의 기능과 매우 유사하지만 둘 다 그래픽 개체 세트를 제공하지만 몇 가지 차이점이 있습니다. g 요소와의 차이점은 다음과 같습니다.
1. 기호 요소 자체는 렌더링되지 않으며 기호 템플릿의 인스턴스만 렌더링됩니다.
2. 기호 요소에는 기호가 그래픽 요소의 크기를 조정할 수 있도록 하는 viewBox 및 PreserveAspectRatio 속성이 있을 수 있습니다. 렌더링 관점에서 볼 때 기호 요소와 유사한 요소는 마커(화살표 및 레이블 정의) 및 패턴(색상 정의) 요소입니다. 이러한 요소는 기본적으로 요소를 사용하여 인스턴스화합니다. 이러한 이유로 'display' 속성은 기호에 대해 의미가 없습니다.
다음 수정 코드는 기호 사용 방법을 보여줍니다.
코드 복사
< usexlink :href="#group1"target="_blank"rel="nofollow">
" .02cm"width="4.96cm"height="4.96cm"
fill="none"Stroke="blue"Stroke-width=".02cm"/>
>
define-defs 요소
SVG를 사용하면 개체 집합을 정의한 다음 이 개체 집합을 재사용할 수 있습니다(참고: 그래픽 개체뿐만 아니라). 가장 일반적인 예는 그라데이션 색상을 정의한 다음 이를 다른 그래픽 객체의 채우기 속성에 할당하는 것입니다. 그라데이션 색상은 정의 시 렌더링되지 않으므로 이 유형의 개체는 어디에나 배치할 수 있습니다. 재사용은 종종 그래픽 개체에 존재하며 정의할 때 직접 렌더링하기를 원하지 않고 참조된 위치에서 렌더링하기를 원합니다. 이는 defs 요소를 사용하여 달성할 수 있습니다.
일반적으로 권장되는 접근 방식은 가능할 때마다 참조 객체를 defs 요소에 넣는 것입니다. 이러한 개체는 일반적으로 altGlyphDef, ClipPath, 커서, 필터, 마커, 마스크, 패턴, 선형Gradient, RadialGradient, 기호 및 그래픽 개체 등입니다. defs 요소에 이러한 객체를 정의하면 이해하기 쉬워지고 접근성이 향상됩니다.
사실 컨테이너 객체인 g 요소, 기호 요소, defs 요소는 모두 다양한 수준에서 재사용 기능을 제공하지만 각 요소의 특성은 조금씩 다를 수 있습니다. 예를 들어 g 요소는 직접 렌더링됩니다. , 기호 및 defs는 직접 렌더링되지 않습니다. 기호에는 viewBox 속성이 포함되어 있으며 새 보기 창이 생성됩니다.
일반적으로 id 속성은 defs에 정의된 요소에 할당되며 사용되는 곳에 직접 사용됩니다. 요소에 따라 이러한 정의는 다른 위치에서 사용될 수 있습니다. 예를 들어 다음과 같은 점진적 색상이 속성으로 사용됩니다.
🎜>
use 요소를 사용하여 그래픽 관련 요소의 정의를 문서에 연결할 수 있습니다. 예:
여기서 xlink 네임스페이스 사용에 유의하세요. 대부분의 뷰어에서는 이 항목이 없어도 이를 올바르게 표시하지만 일관성을 위해 xlink 네임스페이스는 요소에 정의되어야 합니다.
참조 사용 요소
모든 svg, 기호, g, 단일 그래픽 요소 및 사용 요소는 본질적으로 사용 요소에 의해 템플릿 개체(예: 초기화)로 참조될 수 있습니다. 사용 시 참조되는 그래픽 콘텐츠는 지정된 위치에서 렌더링됩니다. image 요소와 달리 use 요소는 전체 문서를 참조할 수 없습니다.
use 요소에는 x, y, width 및 height 속성도 있습니다. 이러한 속성을 생략하지 않으면 참조된 그래픽 콘텐츠의 좌표 또는 길이가 현재 사용자 좌표 공간에 매핑됩니다.
use 요소의 기능은 참조된 객체를 독립적인 비공개 DOM 트리에 심층 복사하는 것과 같습니다. 이 트리의 상위 노드는 use 요소입니다. 비공개 DOM 노드이기는 하지만 본질적으로 여전히 DOM 노드이기 때문에 참조된 개체의 모든 속성값, 애니메이션, 이벤트, CSS 관련 설정 등이 복사되어 계속 작동하며 이러한 노드는 또한 요소의 관련 속성을 상속하고 조상을 사용합니다(참조된 요소는 전체 복사본입니다. 복사된 요소는 원본 요소와 아무 관련이 없으므로 참조된 요소의 조상 노드 속성은 여기에서 상속되지 않습니다). 이러한 노드 자체가 관련(CSS) 속성이고 상속된 속성도 재정의하는 경우 이는 일반 DOM 노드와 일치하므로 사용 요소에 "visibility:hidden"을 사용할 때 반드시 작동하지 않을 수 있으므로 주의하세요. 하지만 노드 중 이 부분은 공개되지 않기 때문에 DOM 연산 시에는 use 요소만 볼 수 있기 때문에 use 요소만 조작할 수 있습니다.
시각적 효과의 관점에서 use 요소는 자리 표시자에 가깝습니다. 렌더링 후의 시각적 효과는 참조된 개체를 사용하여 직접 렌더링하는 것과 같습니다.
1.use 요소 참조 기호 요소
이 경우 시각적 효과는 다음과 같습니다.
(1) use 요소를 g 요소로 교체합니다.
(2) use를 x, y, 너비로 나눕니다. height, ) 참조된 기호 요소를 svg 요소로 대체합니다. 이 svg 요소는 use 요소의 너비 및 높이 속성을 명시적으로 사용합니다(이러한 속성이 없는 use 요소는 100%가 됩니다).
(5) 그래픽을 변경합니다. 참조된 기호 요소의 내용은 대체된 svg에 깊게 복사됩니다.
2. use 요소는 svg 요소를 참조합니다.
이 경우 시각적 효과는 다음과 같습니다. (1) use 요소를 g 요소로 바꿉니다. >(2) x, y, width, height, xlink:href를 제외한 모든 사용 속성을 g 요소로 이동합니다.
(3) 사용의 x, y 속성을 변환(x, y) 및 추가로 변경합니다. g 요소의 변환 속성이 마지막입니다.
(4) 콘텐츠를 포함하여 참조된 svg 요소를 복사합니다. 이 svg 요소는 use 요소의 너비 및 높이 속성을 명시적으로 사용합니다(use 요소는 원래 값을 사용합니다). 이러한 속성이 없는 경우);
3. 기타 상황
이 경우 시각적 효과는 다음과 같습니다. (1) use 요소를 g로 바꿉니다. element; (2) use를 x, y, width, height, xlink로 나눕니다. href를 제외한 모든 속성은 g 요소로 이동합니다.
(3) use의 x, y 속성을 변경합니다( x, y)를 g 요소의 변환 속성 끝에 추가합니다.
(4) 참조 요소를 복사합니다.
아래 예시의 시각적 효과를 살펴보세요
.
아래 사진의 모습은 위 사진과 같습니다
실용 참조:
스크립트 색인: http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
개발 센터: https://developer.mozilla.org/en/SVG
인기 참고 자료: http://www.chinasvg.com/
공식 문서: http://www.w3.org/TR/SVG11/

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











iOS 17 및 macOS Sonoma에서 Apple은 블록 따옴표 및 새로운 모노스타일 스타일을 포함하여 Apple Notes에 대한 새로운 서식 옵션을 추가했습니다. 사용 방법은 다음과 같습니다. Apple Notes의 추가 서식 옵션을 사용하면 이제 메모에 블록 따옴표를 추가할 수 있습니다. 블록 인용 형식을 사용하면 텍스트 왼쪽에 있는 인용 표시줄을 사용하여 글의 섹션을 시각적으로 쉽게 오프셋할 수 있습니다. "Aa" 형식 버튼을 탭/클릭하고 입력하기 전이나 블록 인용으로 변환하려는 줄에 있을 때 블록 인용 옵션을 선택하세요. 이 옵션은 체크리스트를 포함한 모든 텍스트 유형, 스타일 옵션 및 목록에 적용됩니다. 동일한 형식 메뉴에서 새로운 단일 스타일 옵션을 찾을 수 있습니다. 이것은 이전의 "동일 너비"의 개정판입니다.

Javascript를 사용하지 않고 SVG를 사용하여 이미지 모자이크 효과를 얻는 방법은 무엇입니까? 다음 기사는 귀하에게 자세한 이해를 제공할 것이며, 귀하에게 도움이 되기를 바랍니다!

C++는 널리 사용되는 프로그래밍 언어이지만 사용 중에 "정의되지 않은 참조"라는 컴파일 오류가 자주 발생하여 프로그램 개발에 많은 어려움을 초래합니다. 이 문서에서는 "정의되지 않은 참조" 오류에 대한 원인과 해결 방법에 대해 설명합니다. 1. 오류 원인 C++ 컴파일러가 소스 파일을 컴파일할 때 컴파일 단계와 링크 단계의 두 단계로 나누어집니다. 컴파일 단계에서는 소스 파일의 소스 코드를 어셈블리 코드로 변환하고, 연결 단계에서는 다양한 소스 파일을 실행 파일로 결합합니다.

C++에서 참조 유형을 반환하는 함수의 이점은 다음과 같습니다. 성능 개선: 참조로 전달하면 객체 복사가 방지되므로 메모리와 시간이 절약됩니다. 직접 수정: 호출자는 반환된 참조 객체를 다시 할당하지 않고 직접 수정할 수 있습니다. 코드 단순성: 참조로 전달하면 코드가 단순화되고 추가 할당 작업이 필요하지 않습니다.

svg는 이미지 처리 소프트웨어, 온라인 변환 도구, Python 이미지 처리 라이브러리를 사용하여 jpg 형식으로 변환할 수 있습니다. 자세한 소개: 1. 이미지 처리 소프트웨어에는 Adobe Illustrator, Inkscape 및 GIMP가 포함됩니다. 2. 온라인 변환 도구에는 CloudConvert, Zamzar, Online Convert 등이 포함됩니다. 3. Python 이미지 처리 라이브러리 등

C++의 참조와 포인터는 모두 함수 매개변수를 전달하는 방법이지만 차이점이 있습니다. 참조는 변수에 대한 별칭입니다. 참조를 수정하면 원래 변수가 수정되지만 포인터는 변수의 주소를 저장하여 원래 변수를 수정하지 않습니다. 참조 또는 포인터를 사용하도록 선택할 때 원래 변수를 수정해야 하는지 여부, Null 값을 전달해야 하는지 여부, 성능 고려 사항 등의 요소를 고려해야 합니다.

C++는 객체 지향 프로그래밍 언어이며 그 유연성과 강력함은 프로그래머에게 큰 도움이 되는 경우가 많습니다. 그러나 유연성 때문에 프로그래밍할 때 여러 가지 작은 오류를 피하기는 어렵습니다. 가장 흔한 실수 중 하나는 함수가 포인터나 참조를 반환할 때 지역 변수나 임시 개체를 반환할 수 없다는 것입니다. 그렇다면 이 문제를 어떻게 처리해야 할까요? 이번 글에서는 관련 내용을 자세히 소개하겠습니다. 문제의 원인은 C++ 언어에서는 함수 실행 중에 지역 변수와 임시 개체가 동적으로 할당되기 때문입니다. 함수가 끝나면 이러한 지역 변수와 임시

포인터와 참조를 사용하면 C++의 메모리 사용량을 최적화할 수 있습니다. 포인터: 다른 변수의 주소를 저장하고 다른 변수를 가리켜 메모리를 절약할 수 있지만 와일드 포인터가 생성될 수 있습니다. 참조: 다른 변수에 별칭이 지정되고 항상 동일한 변수를 가리키며 와일드 포인터를 생성하지 않으며 함수 매개 변수에 적합합니다. 메모리 사용을 최적화하면 불필요한 복사를 방지하고, 메모리 할당을 줄이고, 공간을 절약하여 코드 효율성과 성능을 향상시킬 수 있습니다.
