[Visualisation des données] SVG (1)

insérez la description de l'image ici

1. Rencontrez SVG et première expérience

Qu'est-ce que le SVG

 Le nom complet de SVG est (Scalable Vector Graphics), ce qui signifie graphiques vectoriels évolutifs. (Définition de vecteur : une quantité avec à la fois une magnitude et une direction. C'est ce qu'on appelle un vecteur en physique, comme un segment de ligne avec une flèche : la longueur indique la taille et la flèche indique la direction ; c'est ce qu'on appelle un vecteur en mathématiques. Dans l'ordinateur, le diagramme vectoriel peut être illimité Zoom avant sans déformation)
 SVG est un diagramme vectoriel basé sur le format XML, principalement utilisé pour définir des graphiques en deux dimensions, et prend en charge l'interaction et l'animation.
 La spécification SVG est une norme développée depuis 1998 par le World Wide Web Consortium (W3C).
 Les images SVG peuvent être redimensionnées sans perte de qualité et prennent en charge la compression.
 SVG basé sur XML peut être facilement créé et modifié avec un éditeur de texte ou un éditeur de graphiques vectoriels, et peut être affiché directement dans le navigateur

Compatibilité SVG avec les navigateurs :
insérez la description de l'image ici

Histoire SVG

Version SVG1.x
 SVG a été développé par le groupe de travail W3CSVG en 1998, et SVG 1.0 est devenu la norme recommandée par le W3C le 4 septembre 2001.
 SVG 1.1 est devenu une norme recommandée par le W3C le 14 janvier 2003. Cette édition ajoute du contenu à la spécification modulaire. En dehors de cela, il y a peu de différence entre 1.1 et 1.0.
 SVG Tiny 1.2 est devenu une recommandation du W3C le 22 décembre 2008, principalement pour générer des graphiques pour les petits appareils à faible performance, mais a ensuite été déprécié par SVG 2.
 La deuxième version de SVG 1.1 est sortie le 16 août 2011. Cette fois, elle ne mettait à jour que les errata et les instructions, et n'ajoutait pas de nouvelles fonctions.

Version SVG2.0 (recommandée)
 SVG 2.0 est devenu une recommandation candidate du W3C le 15 septembre 2016 et la dernière version a été publiée le 26 mai 2020.
 Changement de SVG2.x à partir de SVG1.x ( https://www.w3.org/TR/SVG/changes.html), tel que :
✓ Suppression des attributs de profil de base et de version de l'élément « svg ».
✓ Ajout de la possibilité d'utiliser « auto ». pour lesattributswidthanheightsur'image'.
✓ Ajout de l'attribut'lang' sur les éléments'desc'et'title'.
✓ Suppression des'xlink:type','xlink:role','xlink:arcrole','xlink:show'and' Attributs xlink :actuate
✓ Dépréciation de l'attribut 'xlink:href' au profit de l'utilisation de 'href'sans espace de noms.

Avantages du SVG

◼ Bonne extension : les images vectorielles peuvent être agrandies et dézoomées dans les navigateurs sans distorsion, et peuvent être utilisées dans de nombreux appareils et navigateurs. Les images raster (PNG, JPG) seront déformées lors d'un zoom avant et arrière.
 Les images vectorielles sont des graphiques construits à partir de points vectoriels, de lignes, de formes et de formules mathématiques. Les graphiques n'ont pas de pixels et ne seront pas déformés lors d'un zoom avant ou arrière.
 Une image tramée est une image construite à partir de pixels, c'est-à-dire de minuscules carrés colorés avec un grand nombre de pixels qui peuvent former une image haute définition, telle qu'une photographie. Plus il y a de pixels dans une image, meilleure est la qualité.
◼ Flexible : SVG est un standard développé par le W3C et peut être utilisé en combinaison avec d'autres langages et technologies, notamment CSS, JavaScript, HTML et SMIL. Les images SVG peuvent être manipulées directement à l'aide de JS et CSS, ce qui est très pratique et flexible à utiliser, car SVG peut également être intégré dans DOM.
◼ Animable : les images SVG peuvent être animées à l'aide de JS, CSS et SMIL. Très convivial pour les développeurs Web.
◼ Léger : les images SVG sont de très petite taille par rapport aux autres formats. Selon l'image, les images PNG peuvent avoir une qualité 50 fois supérieure à celle des images SVG.
◼ Imprimable : les images SVG peuvent être imprimées à n'importe quelle résolution sans perte de qualité d'image.
◼ Bon pour le référencement : les images SVG sont indexées par les moteurs de recherche. Par conséquent, les images SVG sont idéales à des fins de SEO (Search Engine Optimization).
◼ Compressible : comme les autres formats d'image, les fichiers SVG prennent en charge la compression.
◼ Facilité d'édition : les images SVG peuvent être créées avec un simple éditeur de texte. Les concepteurs créent et modifient généralement à l'aide d'outils graphiques vectoriels tels qu'Adobe Illustrator (AI).
insérez la description de l'image ici

Inconvénients SVG

◼ Inconfort et production d'images HD
 Le format SVG est idéal pour les graphiques 2D comme les logos et les icônes (ICÔNES), mais pas pour les images HD et la manipulation au niveau des pixels.
 Les images SVG ne peuvent pas afficher autant de détails que les formats d'image standard car elles sont rendues à l'aide de points et de chemins au lieu de pixels.
◼ Les images SVG se chargent lentement lorsqu'elles deviennent complexes
◼ Pas entièrement extensibles à la plate-forme
 Bien que SVG existe depuis 1998 et soit pris en charge par la plupart des navigateurs modernes (ordinateurs de bureau et mobiles), il ne fonctionne pas pour les navigateurs Legacy IE8 et inférieurs. Selon les données de caniuse, environ 5 % des utilisateurs utilisent des navigateurs qui ne prennent pas en charge SVG.
insérez la description de l'image ici

Scénarios d'application SVG

◼ Quels sont les scénarios d'application de SVG ? Voici quelques scénarios d'application qui justifient la supériorité de SVG sur les autres formats d'image :
 SVG est idéal pour afficher des logos vectoriels (Logos), des icônes (ICÔNES) et d'autres motifs géométriques.
 SVG convient aux applications qui doivent être affichées sur des écrans qui doivent s'adapter à plusieurs tailles, car SVG a une meilleure évolutivité.
 SVG est un format idéal lorsqu'il s'agit de créer des animations simples.
✓ SVG peut être interagi avec JS pour créer des animations de ligne, des transitions et d'autres animations complexes.
✓ SVG peut interagir avec les animations CSS ou utiliser ses propres animations SMIL intégrées.
 SVG convient également très bien à la création de divers graphiques (histogrammes, graphiques linéaires, camemberts, nuages ​​de points, etc.), ainsi qu'au développement de pages visuelles sur grand écran.
insérez la description de l'image ici

La différence entre SVG et Canvas

◼ Évolutivité :
 SVG est un graphique construit à partir de points vectoriels, de lignes, de formes et de formules mathématiques. Ce graphique n'a pas de pixels et ne sera pas déformé lors d'un zoom avant ou arrière.
 Canvas est un graphique composé de pixels individuels, un zoom avant rendra le graphique granuleux et pixélisé (flou).
 SVG peut être imprimé à n'importe quelle résolution avec une haute qualité. Canvas ne convient pas à l'impression à des résolutions arbitraires.
◼ Capacité de rendu :
 Lorsque SVG est complexe, son rendu devient très lent, car lors de l'utilisation intensive de DOM, le rendu devient très lent.
 Canvas offre un rendu hautes performances et des capacités de traitement graphique plus rapides, par exemple : adapté à la création de petits jeux H5.
 Lorsqu'une image contient beaucoup d'éléments, la taille du fichier SVG augmente plus rapidement (ce qui rend le DOM complexe), tandis que le Canvas n'augmente pas tant que ça.
◼ Flexibilité :
 SVG peut être modifié via JavaScript et CSS, et il est très pratique d'utiliser SVG pour créer des animations et des effets spéciaux.
 Canvas ne peut être modifié que via JavaScript, la création d'une animation nécessite un redessin image par image.
◼ Scénarios d'utilisation :
 Canvas est principalement utilisé pour le développement de jeux, le dessin de graphismes, la composition de photos complexes et l'exécution d'opérations au niveau des pixels sur les images, telles que les sélecteurs de couleurs et les photos rétro.
 SVG est idéal pour afficher des logos vectoriels (logos), des icônes (ICÔNES) et d'autres motifs géométriques.

Première expérience avec SVG

◼ Comment dessiner une image vectorielle SVG ? Il existe 4 façons courantes de dessiner des graphiques vectoriels SVG :
 Méthode 1 : Dessiner dans un fichier svg séparé, le fichier svg peut être directement prévisualisé dans le navigateur ou intégré au format HTML (recommandé)
 Méthode 2 : Utiliser directement dans le fichier HTML svg éléments à dessiner (recommandé)
 Méthode 3 : Utiliser directement le code JavaScript pour générer des graphiques vectoriels svg.
 Méthode 4 : Utilisez les outils de dessin vectoriel AI (Adobe IIIustractor) pour dessiner des graphiques vectoriels et les exporter sous forme de fichiers svg (recommandé) ◼
Première expérience SVG
insérez la description de l'image ici
Étape 1 : Créez un nouveau fichier svg et écrivez la déclaration de fichier XML dans la première ligne du
file Étape 2 : écrivez un élément <svg> et ajoutez les attributs suivants à l'élément :
✓ version : spécifiez la version de svg à utiliser, les valeurs sont 1.0 et 1.1, et il n'y a pas de 2.0.
✓ baseProfile : Avant SVG 2, les attributs version et baseProfile étaient utilisés pour vérifier et identifier la version SVG. Ces deux attributs ne sont pas recommandés après SVG2.
✓ width/height : Spécifiez la largeur et la hauteur du canevas svg (viewport), les valeurs par défaut sont respectivement 300 et 150, et l'unité px est utilisée par défaut.
✓ xmlns : Attribuer un espace de noms à l'élément svg (http://www.w3.org/2000/svg)
signifie que la balise <svg> et ses éléments enfants appartiennent tous à cet espace de noms.
 Étape 3 : Ajoutez des éléments graphiques (par exemple : <rect>) dans l'élément <svg>
 Étape 4 : Prévisualisez directement dans le navigateur ou intégrez-le dans HTML (il existe 6 options pour incorporer du HTML)
insérez la description de l'image ici

Déclarations XML et DTD

insérez la description de l'image ici
◼ Puisque SVG est un format de fichier XML. Lors de l'écriture de documents XML, il est généralement recommandé d'écrire des déclarations XML. Puisque les déclarations XML sont facultatives dans XML 1.0, leur écriture est recommandée mais pas obligatoire. Dans XML 1.1, cependant, les déclarations sont obligatoires et l'absence de déclaration implique automatiquement que le document est un document XML 1.0. Il est donc recommandé d'écrire également une déclaration XML lors de l'écriture de fichiers SVG.
◼ Format de déclaration XML de SVG : <?xml version="1.0" encoding="UTF-8" standalone="no" ?>  version spécifie la version (obligatoire)  encoding spécifie l'encodage du document XML (optionnel
,
le la valeur par défaut est UTF-8)
 autonome : ​​spécifie si le document XML actuel dépend de la déclaration de balise externe (facultatif, lors de l'utilisation de cet attribut, il n'a de sens que lorsqu'il est utilisé avec la déclaration DTD).
✓ La valeur par défaut est no : signifie s'appuyer sur des déclarations de balisage externes
✓ yes : signifie s'appuyer sur des déclarations de balisage internes par défaut
◼ Document Type Declaration (DTD) de SVG, qui permet à l'analyseur de vérifier si le fichier XML est conforme à la spécification, similaire à la déclaration DTD des fichiers HTML5.
 Déclaration de DTD interne en XML (facultatif)
 Déclaration de DTD externe en XML (facultatif)

<!DOCTYPE svgPUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

insérez la description de l'image ici

Structure des documents SVG

Structure du document SVG1.1 :
 La première ligne : contient une déclaration XML. Comme le fichier SVG est au format XML, il doit contenir une déclaration XML.
 La deuxième ligne : définir la déclaration de type de document (DTD), ici s'appuyer sur le type de document SVG1.1 externe, laisser l'analyseur vérifier si le fichier XML est conforme à la spécification.

<!DOCTYPE svgPUBLIC “-//W3C//DTD SVG 1.1//EN”"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

Structure de document SVG2.0 :
 Les attributs SVG2version et baseProfile ont été supprimés, et il n'est pas recommandé d'écrire une déclaration de type de document (DTD). dans L'élément est utilisé pour décrire le document.
insérez la description de l'image ici
insérez la description de l'image ici

JS pour créer du SVG

◼ Lorsque vous utilisez des scripts JS pour créer du SVG, tous les éléments créés doivent ajouter un espace de noms.
 Par exemple : Pour créer des éléments <svg> ou <rect>, vous devez ajouter un espace de noms (http://www.w3.org/2000/svg)
 Si l'attribut de l'élément n'a pas de préfixe, le l'affectation de l'espace de noms est nulle.
◼ Parce qu'il est suggéré dans la spécification d'espace de noms XML1.1 que le nom de l'espace de noms sans attribut de préfixe (avec le préfixe xlink:href) n'a pas de valeur, et la valeur de l'espace de noms doit utiliser une valeur nulle.
◼ Créer DOM2API couramment utilisé dans SVG :
 ​​createElementNS (ns, elname) : créer des éléments SVG
 setAttributeNS (ns, attrname, value) : ajouter des attributs aux éléments SVG
 getAttributeNS (ns, attrname) : obtenir des attributs sur les éléments SVG
 hasAttributeNS ( ns, attrname) : détermine si un attribut existe sur un élément SVG
removeAttributeNS (ns, attname) : supprime un attribut sur un élément SVG
Autres API : https://developer.mozilla.org/zh-CN/ docs/Web /SVG/Namespaces_Crash_Course
insérez la description de l'image ici

HTML en SVG

◼ Méthode 1 : L'élément img
est utilisé comme image, ne prend pas en charge l'interaction et n'est compatible qu'avec ie9 et supérieur ◼
Méthode 2 : CSS background
est utilisé comme image d'arrière-plan, ne prend pas en charge l'interaction
Méthode 3 : Directement citer le fichier source dans le fichier HTML
En tant qu'élément DOM de HTML, il prend en charge l'interaction et n'est compatible qu'avec ie9 et supérieur◼
Méthode 4 : élément objet (comprendre).
 Prend en charge le svg interactif, peut obtenir une référence d'objet, définir une animation pour SVG, modifier sa feuille de style, etc.
◼ Méthode 5 : élément iframe (comprendre).
 Prend en charge le svg interactif, peut obtenir une référence iframe, définir une animation pour SVG, modifier sa feuille de style, etc.
◼ Méthode 6 : intégrer un élément (comprendre).
 Prend en charge le svg interactif, peut obtenir une référence d'intégration, définir une animation pour SVG, modifier sa feuille de style, etc., et avoir un meilleur support pour les anciens navigateurs.
insérez la description de l'image ici

2. Grille et système de coordonnées

Grille et systèmes de coordonnées SVG

◼ Le système de coordonnées (système de grille) utilisé par SVG est similaire à celui de Canvas. Le système de coordonnées prend le coin supérieur gauche comme origine des coordonnées (0,0), les coordonnées sont en pixels, la direction positive de l'axe des x est vers la droite et la direction positive de l'axe des y est vers le bas.
◼ Grille SVG (système de coordonnées)
 La largeur par défaut de l'élément <svg> est de 300px et la hauteur est de 150px. Comme indiqué à droite, l'élément <svg> est couvert par une grille par défaut.
 De manière générale, une cellule de la grille équivaut à un pixel de l'élément svg.
 Fondamentalement, 1 pixel dans le document SVG correspond à 1 pixel sur le périphérique de sortie (par exemple, l'affichage) (sauf s'il est mis à l'échelle).
 L'élément <svg> a un espace de coordonnées comme les autres éléments, et son origine est située dans le coin supérieur gauche de l'élément, qui est appelé le système de coordonnées initial de la fenêtre  L'attribut transform de <svg> peut être utilisé pour déplacer, faire pivoter et
mettre à l'échelle des objets dans SVG Un élément, tel qu'un élément dans <svg> qui utilise la déformation, établira un nouveau système de coordonnées à l'intérieur de l'élément, et l'élément par défaut que toutes les modifications ultérieures sont basées sur le système de coordonnées nouvellement créé.
insérez la description de l'image ici

Unités du système de coordonnées SVG

insérez la description de l'image ici
◼ Système de coordonnées SVG, lorsque l'unité n'est pas spécifiée explicitement, l'unité par défaut est le pixel.
◼ Par exemple : <rect x="0" y="0" width="100" height="100" /> 
Définissez un rectangle, c'est-à-dire qu'il commence par le coin supérieur gauche, s'étend de 100 px vers la droite et étendez 100px vers le bas pour former un grand rectangle de 100*100.

◼ Bien sûr, nous pouvons également spécifier manuellement l'unité du système de coordonnées, par exemple :
insérez la description de l'image ici

3. Fenêtre et cadre de vue

fenêtre - fenêtre

insérez la description de l'image ici
◼ Viewport
 Le viewport est la zone visible du SVG (ou la taille du canevas SVG). Les fenêtres peuvent être considérées comme des fenêtres à travers lesquelles vous pouvez voir une scène spécifique.
 Vous pouvez utiliser les attributs width et height de l'élément <svg> pour spécifier la taille de la fenêtre d'affichage.
 Une fois la largeur et la hauteur de l'élément SVG le plus à l'extérieur définies, le navigateur établit le système de coordonnées initial de la fenêtre d'affichage et le système de coordonnées utilisateur initial.
◼ Système de coordonnées de la fenêtre
 Le système de coordonnées de la fenêtre est un système de coordonnées établi sur la fenêtre. L'origine est au point (0, 0) dans le coin supérieur gauche de la fenêtre, l'axe des x est positif vers la droite et le l'axe y est positif vers le bas.
 Une unité dans le système de coordonnées initial de la fenêtre est égale à un pixel dans la fenêtre, ce qui est similaire à celui des éléments HTML.
◼ Système de coordonnées utilisateur (également appelé système de coordonnées actuel ou espace utilisateur utilisé, et le dessin suivant fera référence à ce système de coordonnées)
 Le système de coordonnées utilisateur est le système de coordonnées établi sur la fenêtre SVG. Ce système de coordonnées est initialement le même que le système de coordonnées de la fenêtre - son origine se trouve dans le coin supérieur gauche de la fenêtre.
 À l'aide de la propriété viewBox, le système de coordonnées initial de l'utilisateur peut être modifié afin qu'il ne soit plus le même que le système de coordonnées de la fenêtre.
◼ Pourquoi y a-t-il deux systèmes de coordonnées ?
 Étant donné que SVG est une image vectorielle, il prend en charge la mise à l'échelle arbitraire. Les graphiques dessinés dans le système de coordonnées utilisateur seront finalement mis à l'échelle proportionnellement par rapport au système de coordonnées de la fenêtre.
insérez la description de l'image ici

Boîte de visualisation - viewBox

◼ ViewBox (viewBox)
 viewport est la taille du canevas SVG, et viewBox est utilisé pour définir la position et la taille dans le système de coordonnées utilisateur (la zone sera généralement mise à l'échelle pour remplir la fenêtre).
 viewBox peut également être compris comme utilisé pour spécifier la taille du système de coordonnées utilisateur. Parce que les graphiques SVG sont tous dessinés dans cette zone. Le système de coordonnées utilisateur peut être plus petit ou plus grand que le système de coordonnées de la fenêtre et peut être entièrement ou partiellement visible dans la fenêtre.
 Une fois le système de coordonnées de la fenêtre d'affichage créé (<svg> utilise la largeur et la hauteur), le navigateur crée un système de coordonnées utilisateur par défaut identique à celui-ci.
 Nous pouvons utiliser la propriété viewBox pour spécifier la taille du système de coordonnées utilisateur.
✓ Si le système de coordonnées de l'utilisateur a le même rapport d'aspect que le système de coordonnées de la fenêtre, il étire la zone de la zone de visualisation pour remplir la zone de la fenêtre.
✓ Si le système de coordonnées utilisateur et le système de coordonnées de la fenêtre n'ont pas le même rapport d'aspect, la propriété preserveAspectRatio peut être utilisée pour spécifier si l'intégralité du système de coordonnées utilisateur est visible dans la fenêtre.
◼ syntaxe viewBox
viewBox = <min-x> <min-y> <width> <height>, par exemple : viewBox =' 0 0 100 100'
✓ <min-x> et <min-y> déterminent le coin supérieur gauche de la boîte de vue Coordonnées du coin (l'origine du système de coordonnées utilisateur n'est pas modifiée et le dessin commence toujours à partir du 0,0 d'origine)
✓ <width> <height> détermine la largeur et la hauteur de la boîte de vue.
➢ La largeur et la hauteur ne doivent pas nécessairement être les mêmes que celles définies sur l'élément parent <svg>.
➢ Les valeurs négatives pour la largeur et la hauteur ne sont pas valides, et 0 désactive l'affichage des éléments.
insérez la description de l'image ici

viewbox - viewBox - même rapport d'aspect

insérez la description de l'image ici

◼ Voir un exemple où le viewport et le viewBox ont le même ratio d'aspect :
✓ Réglez le viewbox à la moitié de la taille du viewport sur la propriété viewBox.
✓ Laissez le coin supérieur gauche de la fenêtre inchangé pour l'instant, réglez-le sur zéro.
✓ La largeur et la hauteur de la fenêtre seront égales à la moitié de la largeur et de la hauteur de la fenêtre.
insérez la description de l'image ici

insérez la description de l'image ici
insérez la description de l'image ici

◼ Alors, que fait exactement viewbox="0 0 100 100" ?
 Spécifiez la zone affichable du canevas, le système de coordonnées utilisateur va du point supérieur gauche de (0, 0) au point de (100, 100) et l'unité par défaut est px.
 Ensuite, dessinez les graphiques SVG dans la zone viewBox.
 La zone viewBox est agrandie proportionnellement (zoom sans distorsion) pour remplir toute la fenêtre.
 Le système de coordonnées utilisateur est mappé sur le système de coordonnées de la fenêtre, donc - dans ce cas - 1 unité utilisateur équivaut à 4 unités de la fenêtre.
 Tout ce qui est dessiné sur le canevas SVG sera dessiné par rapport à ce système de coordonnées utilisateur.

viewbox - viewBox - différents rapports d'aspect

◼ Dans la fenêtre 400*400, que fait viewbox="0 0 200 100" ?
 Les proportions de la viewBox sont conservées, mais la viewBox n'est pas étirée pour couvrir toute la zone de la fenêtre.
 ViewBox viewBox est centré verticalement et horizontalement dans la fenêtre d'affichage.
insérez la description de l'image ici
◼ Que faire si vous souhaitez modifier la position du cadre de vue dans la fenêtre ?
 Ajoutez l'attribut preserveAspectRatio à <\svg>, cet attribut permet de forcer un zoom uniforme viewBox viewBox
✓ preserveAspectRatio="none", force l'étirement des graphiques à remplir toute la fenêtre.
✓ preserveAspectRatio="xMinYMin", les graphiques sont affichés sur les axes minimum x et y du viewport
insérez la description de l'image ici

4. Dessinez des formes et des chemins

dessiner - rectangle (rect)

insérez la description de l'image ici

◼ Formes de base de
SVG Dans le canevas SVG, si vous souhaitez insérer une forme, vous pouvez créer un élément correspondant dans le document.
 Différents éléments correspondent à différentes formes et différents attributs peuvent être utilisés pour définir la taille et la position des graphiques.
 Les formes de base prises en charge par SVG sont : rectangle, cercle, ellipse, ligne, polyligne, polygone, chemin.
◼ Ensuite, utilisez SVG pour dessiner un rectangle (rect)
 L'élément <rect> sera dessiné sur l'écran
 L'élément <rect> a 6 attributs de base pour contrôler sa position et sa forme sur l'écran.
◼Les 6 attributs de base de l'élément <rect>
 x : la position sur l'axe x du coin supérieur gauche du rectangle
 y : la position sur l'axe y du coin supérieur gauche du rectangle
 width : la largeur du rectangle
 hauteur : la hauteur du rectangle
 rx : l'orientation sur l'axe x des coins arrondis Le rayon de
 ry : le rayon de l'orientation sur l'axe y du congé.
insérez la description de l'image ici

dessiner - cercle (cercle)

◼ Utilisez maintenant SVG pour dessiner un cercle (cercle)
 L'élément <cercle> dessinera un cercle sur l'écran.
 L'élément <circle> a 3 attributs de base pour définir le cercle.
◼Trois propriétés de base de l'élément <circle>
 r : le rayon du cercle
 cx : la position sur l'axe x du centre du cercle
 cy : la position sur l'axe y du centre du cercle
insérez la description de l'image ici

Dessiner - ellipse (ellipse)

◼ Ensuite, utilisez SVG pour dessiner une ellipse (ellipse)
 L'élément <ellipse> est une forme plus générale de l'élément <circle>, qui peut mettre à l'échelle le rayon x et le rayon y du cercle séparément.
 rayon x et rayon y, les mathématiciens l'appellent généralement rayon d'axe majeur et rayon d'axe mineur
 L'élément <ellipse> a 4 attributs de base pour définir l'ellipse.
◼ <ellipse> élément 4 propriétés de base
 rx : rayon de l'axe x de l'ellipse
 ry : rayon de l'axe y de l'ellipse
 cx : position de l'axe x du centre de l'ellipse
 cy : position de l'axe y du centre de l'ellipse
insérez la description de l'image ici

dessiner - cercle (cercle)

◼ Utilisez maintenant SVG pour dessiner un cercle (cercle)
 L'élément <cercle> dessinera un cercle sur l'écran.
 L'élément <circle> a 3 attributs de base pour définir le cercle.
◼ Trois attributs de base de l'élément <circle>
 r : le rayon du cercle
 cx : la position sur l'axe x du centre du cercle
 cy : la position sur l'axe y du centre du cercle
insérez la description de l'image ici

Dessiner - ellipse (ellipse)

◼ Ensuite, utilisez SVG pour dessiner une ellipse (ellipse)
 L'élément <ellipse> est une forme plus générale de l'élément <circle>, qui peut mettre à l'échelle le rayon x et le rayon y du cercle séparément.
 rayon x et rayon y, les mathématiciens l'appellent généralement rayon d'axe majeur et rayon d'axe mineur
 L'élément <ellipse> a 4 attributs de base pour définir l'ellipse.
◼ <ellipse> élément 4 propriétés de base
 rx : rayon de l'axe x de l'ellipse
 ry : rayon de l'axe y de l'ellipse
 cx : position de l'axe x du centre de l'ellipse
 cy : position de l'axe y du centre de l'ellipse
insérez la description de l'image ici

dessiner - ligne (ligne)

◼ Ensuite, utilisez SVG pour tracer une ligne droite (ligne)
 L'élément <line> consiste à tracer une ligne droite. Il prend les positions de deux points comme attributs, spécifiant les positions de début et de fin de la ligne.
 Il doit être tracé pour s'afficher, et il ne prend pas en charge le remplissage, qui est identique aux lignes Canvas.
 L'élément <line> a 4 attributs de base pour définir la ligne.
◼ L'élément <line> a 4 attributs de base
 x1 : la position sur l'axe x du point de départ
 y1 : la position sur l'axe y du point de départ
 x2 : la position sur l'axe x du point final
 y2 : le y -position de l'axe du point final
insérez la description de l'image ici

Dessin - Polyligne (polyligne)

◼ Ensuite, utilisez SVG pour dessiner une ligne droite (polyligne)
 L'élément <polyline> est un groupe de lignes droites connectées. Parce qu'elle peut avoir de nombreux points, toutes les positions des points de la polyligne sont placées dans une propriété de points.
 Il sera rempli de noir par défaut
 L'élément <polyline> a un attribut de base pour définir la position de tous les points de la polyligne.
◼ L'élément <polyline> a un attribut de base
 points : séquence d'ensembles de points. Chaque nombre est séparé par des blancs, des virgules, des commandes de fin ou des retours à la ligne.
 Chaque point doit contenir 2 nombres, l'un est la coordonnée x et l'autre est la coordonnée y.
 Ainsi, les listes de points (0,0), (1,1) et (2,2) peuvent s'écrire comme suit : "0 0, 1 1, 2 2".
✓ Format de support : "0 0, 1 1, 2 2" ou "0, 0, 1, 1, 2, 2" ou "0 01 12 2"
insérez la description de l'image ici

Dessin - polygone (polygone)

◼ Ensuite, utilisez SVG pour dessiner des polygones (polygone)
 Les éléments <polygone> sont très similaires aux polylignes, ils sont composés de lignes droites reliant un ensemble de points. La différence est que le chemin du <polygone> revient automatiquement du premier point au dernier point. A noter qu'un rectangle est aussi un polygone, et il est également possible de créer un rectangle à partir d'un polygone.
 Il sera rempli de noir par défaut
 L'élément <polygone> a un attribut de base utilisé pour définir la position de tous les points de la ligne du polygone.
◼ L'élément <polygon> a un attribut de base
 points : séquence d'ensembles de points. Chaque nombre est séparé par des blancs, des virgules, des commandes de fin ou des retours à la ligne.
 Chaque point doit contenir 2 nombres, l'un est la coordonnée x et l'autre est la coordonnée y.
 Il est donc recommandé d'écrire les listes de points (0,0), (1,1) et (2,2) comme suit : "0 0, 1 1, 2 2".
 La forme est fermée une fois le chemin tracé, de sorte que la ligne finale se connectera de la position (2,2) à la position (0,0).
insérez la description de l'image ici

dessiner - chemin (chemin)

◼ Utilisons SVG pour tracer des chemins
 L'élément <chemin> est probablement la forme la plus courante en SVG. Vous pouvez utiliser l'élément <path> pour dessiner des rectangles (rectangles ou rectangles arrondis), des cercles, des ellipses, des polylignes, des polygones et d'autres formes, telles que des courbes de Bézier, des courbes quadratiques et d'autres courbes.
 Il sera rempli de noir par défaut, et le chemin ne sera pas fermé par défaut
 L'élément <path> a un attribut de base pour définir la position du point du chemin.
insérez la description de l'image ici

◼ <chemin> élément 1 attribut de base
 d : un tableau d'ensemble de points et d'autres informations sur la façon de tracer le chemin, doivent commencer par la commande M.
✓ Il est donc recommandé d'écrire les listes de points (0,0), (1,1) et (2,2) comme ceci : "M0 0, 1 1, 2 2".
✓ Format de support : "M0 0, 1 1, 2 2" ou "M0 0, 1 1,2 2" ou "M0, 0, 1, 1, 2, 2" ou "M0 01 12 2"

Chemins et commandes SVG

◼ Les chemins SVG et les éléments nommés
<chemin> sont les formes SVG de base les plus puissantes. Vous pouvez l'utiliser pour créer des lignes, des courbes, des arcs et plus encore.
La forme de l'élément <path> est définie par l'attribut d, et la valeur de l'attribut d est une séquence de "commande + paramètre".
 Chaque commande est représentée par une lettre clé. Par exemple, la lettre « M » représente la commande « Déplacer vers ». Lorsque l'analyseur lit cette commande, il sait que vous avez l'intention de vous déplacer jusqu'à un certain point. Après la lettre de commande se trouvent les coordonnées x et y du point vers lequel vous devez vous déplacer. Par exemple, la commande pour se déplacer vers le point (10,10) doit être écrite comme la commande "M 10 10". Une fois ce paragraphe de caractères terminé, l'analyseur lira le paragraphe de commandes suivant. Chaque commande a deux représentations, l'une consiste à utiliser des lettres majuscules, ce qui signifie un positionnement absolu. L'autre consiste à utiliser des lettres minuscules, indiquant le positionnement relatif (par exemple : à partir du point précédent, déplacer vers le haut de 10 px, déplacer vers la gauche de 7 px).
 L'attribut d adopte le système de coordonnées utilisateur et n'a pas besoin d'indiquer l'unité.
◼ Commandes prises en charge par la valeur de propriété d
 Commande Line
✓ M/m : MoveTo
✓ L/l : LineTo
✓ Z/z : Close Path
✓ H/h : horizontal
✓ V/v : vertical
 Commande Curve
✓ C : Cubic Besser Curve
✓ S : courbe de Bézier cubique abrégée
✓ Q : courbe de Bézier quadratique
✓ T : courbe de Bézier quadratique abrégée
insérez la description de l'image ici

5. Dessinez du texte et des images

dessin

◼ Dessiner une image en SVG
Introduisez l'URL de l'image dans l'attribut href de l'élément <image>
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici
◼ Remarque
L'élément image ne définit pas les valeurs x, y, elles sont automatiquement définies sur 0.
 Lorsque la hauteur et la largeur de l'élément d'image ne sont pas définies, la valeur par défaut est la taille de l'image.
 largeur et hauteur égales à 0, l'image ne sera pas présentée.
 Les images externes doivent être référencées sur l'attribut href, et non sur l'attribut src.
Compatibilité des attributs href

dessiner-texte

◼ Voyons comment dessiner du texte sur le canevas SVG.
L'élément <text> est utilisé pour dessiner du texte dans un canevas SVG.
insérez la description de l'image ici
insérez la description de l'image ici

◼Attributs de base de l'élément <text>
 Les attributs x et y déterminent la position d'affichage du texte dans le système de coordonnées utilisateur.
 attribut text-anchor text flow direction, peut avoir une valeur start, middle, end ou inherit,
valeur par défaut start
insérez la description de l'image ici

◼Propriétés de la police de l'élément <text>
Une partie vitale du texte est la police dans laquelle il apparaît. SVG fournit certaines propriétés, similaires à CSS. Les propriétés suivantes peuvent être définies en tant que propriété SVG ou propriété CSS :
✓ font-family, font-style, font-weight, font-variant, font-stretch, font-size, font-size-adjust, kerning, letter- espacement, espacement des mots et décoration du texte.
◼ Autres éléments liés au texte :
L'élément est utilisé pour marquer une sous-section d'un grand bloc de texte, il doit s'agir d'un élément de texte ou d'un sous-élément d'un autre élément tspan.
✓ Les propriétés x et y déterminent où le texte apparaîtra dans le système de coordonnées de la fenêtre.
✓ alignement-baseline Attributs d'alignement de la ligne de base : auto, baseline, middle, hanging, top, bottom..., la valeur par défaut est auto
insérez la description de l'image ici

Six, regroupement et multiplexage SVG

combinaison d'éléments (g)

insérez la description de l'image ici
◼ Composition d'éléments
 L'élément <g> est un conteneur pour combiner des éléments.
 La transformation ajoutée à l'élément g sera appliquée à tous ses éléments enfants.
 La plupart des attributs ajoutés à l'élément g seront hérités par tous ses éléments enfants.
 L'élément g peut également être utilisé pour définir des objets complexes, auxquels il est ensuite possible d'accéder via ◼Attributs
de l'élément <g> (cet élément ne contient que des attributs globaux)
 Attributs de base : id
 Attributs de style : class, style
 PresentationAttributes (également appelés attributs CSS, ces attributs peuvent être écrits en CSS, ou Peut être utilisé comme attributs d'éléments) :
✓ curseur, affichage, remplissage, remplissage-opacité, opacité ,


insérez la description de l'image ici

 Propriétés d'événement : onchange , onclick, ondblclick, ondrag…
 Propriétés d'animation : transform
Plus

Réutilisation des éléments graphiques (defs)

◼ SVG nous permet de définir des éléments réutilisables.
 Définissez les éléments réutilisables dans l'élément <defs>, puis passez élément à référencer et à afficher.
 Cela augmente la lisibilité, la réutilisation et l'accessibilité du contenu SVG.
◼ L'élément <defs>, qui définit les éléments réutilisables.
 Par exemple : définir des formes de base, des formes composées, des dégradés, des filtres, des styles, etc.
 Les éléments graphiques définis dans l'élément <defs> ne seront pas affichés directement.
 Peut être utilisé n'importe où dans la fenêtre pour rendre les éléments définis dans defs.
L'élément <defs> n'a pas d'attributs spéciaux, et il n'est généralement pas nécessaire d'ajouter des attributs lors de son utilisation.
◼ A quelle référence se réfère le repère de l'élément défini par <defs> ? système de coordonnées utilisateur
insérez la description de l'image ici

Introduire des éléments (utiliser)

insérez la description de l'image ici

◼L'élément <use> obtient les nœuds du document SVG et copie les nœuds obtenus à l'emplacement spécifié.
<use> équivaut à un clonage en profondeur du nœud DOM, un clonage à la position où se trouve l'élément use.
 Les nœuds clonés sont invisibles lorsqu'ils sont donnés Soyez prudent lorsque vous appliquez des styles CSS aux éléments. Parce que le DOM cloné n'est pas garanti d'hériter Propriétés CSS sur les éléments, mais les propriétés CSS héritables sont héritées.
◼Attributs de l'élément <use>
href : l'URL ou l'ID de l'élément/fragment doit être copié (les références croisées SVG sont prises en charge). Par défaut : Aucun
xlink:href : (obsolète dans SVG2.0) URL ou ID de l'élément/fragment qui doit être copié. Par défaut : Aucun
 x/y : Les coordonnées x/y de l'élément (par rapport à l'endroit où l'élément est copié). Valeur par défaut : 0
 largeur/hauteur : La largeur et la hauteur de l'élément (fonctionne uniquement lorsque l'élément svg ou symbole est introduit). Par défaut : 0
insérez la description de l'image ici

Réutilisation des éléments graphiques (symboles)

◼ éléments <symbol> et Les éléments sont similaires et sont également utilisés pour définir des éléments réutilisables, puis passer élément pour référencer l'affichage.
 Les éléments graphiques définis dans l'élément <symbol> ne seront pas affichés sur l'interface par défaut.
 Le scénario d'application courant de l'élément <symbol> consiste à définir diverses petites icônes, telles que : icône, logo, badge, etc.
◼ L'attribut de l'élément <symbol>
 viewBox : définit la zone de vue actuelle.
 x/y : Les coordonnées x/y de l'élément de symbole. ; Par défaut : 0
 largeur/hauteur : La largeur de l'élément de symbole. Valeur par défaut : 0
◼ Différence entre <symbol> et <defs>
 L'élément <defs> n'a pas d'attributs propriétaires, tandis que l'élément <symbol> fournit plus d'attributs
✓ Par exemple : viewBox, preserveAspectRatio, x, y, width, height, etc. .
L'élément <symbol> possède son propre système de coordonnées utilisateur, qui peut être utilisé pour créer des sprites SVG.
Les graphiques définis par l'élément <symbol> ajoutent de la structure et de la sémantique, améliorant l'accessibilité du document.
Fichiers SVGICON - combinés en sprites SVG
insérez la description de l'image ici

Sept, remplir et border

◼ Si vous souhaitez colorer les éléments en SVG, il existe généralement deux solutions :
 La première méthode : utilisez directement les attributs des éléments, tels que : attributs fill (fill), stroke (stroke), etc.
 La deuxième méthode : écrivez directement les styles CSS, car SVG est aussi un élément en HTML, et il prend également en charge les styles d'écriture avec CSS.

◼ La première méthode : utiliser directement les attributs de l'élément (remplissage et trait)
 En SVG, la coloration de la plupart des éléments peut se faire grâce aux deux attributs de remplissage et de trait.
✓ propriété fill : définit la couleur de remplissage de l'objet. Prend en charge : nom de couleur, valeur hexadécimale, rgb, rgba.
✓ attribut trait : définit la couleur de la bordure de l'objet dessiné. Prend en charge : nom de couleur, valeur hexadécimale, rgb, rgba.
insérez la description de l'image ici

attribut de remplissage (fill)

◼ L'attribut fill est spécialement utilisé pour remplir les éléments en SVG avec de la couleur.
 fill="couleur". Prise en charge : nom de la couleur, valeur hexadécimale, rgb, rgba, currentColor (hérite de la couleur de police de soi ou de la police parente).
◼ Remplissez le rectangle avec la couleur ci-dessous : fill="pink"
◼ Contrôlez l'opacité de la couleur de remplissage
 fill-opacity="number", cette propriété est spécialement utilisée pour contrôler l'opacité de la couleur de remplissage, la valeur est 0 à 1.
insérez la description de l'image ici

Propriété de trait (trait)

insérez la description de l'image ici
◼ Attribut Stroke
 stroke="color": Spécifie la couleur de remplissage de la bordure de l'élément.
 stroke-opacity="number" : contrôle la transparence de la couleur de remplissage de la bordure de l'élément.
 stroke-width="number" : spécifiez la largeur du trait. Notez que la bordure est dessinée avec le chemin comme ligne centrale.
 stroke-linecap="butt|square|round" : contrôle le style des extrémités des bordures.
insérez la description de l'image ici
 stroke-linejoin="miter|round|bevel": contrôle le style de la jonction de deux segments de ligne
insérez la description de l'image ici

 stroke-dasharray="number[,number,….]" : applique le type tiret à la bordure.
✓ La valeur doit être un tableau de nombres séparés par des virgules, les espaces seront ignorés. Par exemple, 3, 5 :
➢ Le premier signifie que la longueur de la zone colorée est de 3
➢ Le second signifie que la longueur de la zone non colorée est de 5
 stroke-dashoffset : spécifie le décalage du chemin en mode dasharray.
✓ La valeur est de type numéro, qui peut être positif ou négatif.

style css

insérez la description de l'image ici
◼ Écrivez directement des styles CSS pour obtenir un rembourrage et un contour 
En plus de définir les attributs des éléments, vous pouvez également implémenter un rembourrage et des contours via CSS (les styles CSS peuvent être écrits dans defs, ou dans la tête de HTML ou à l'extérieur, etc.) .
 La syntaxe est la même que l'utilisation de CSS en HTML. Il convient de noter que vous devez changer la couleur d'arrière-plan et la bordure en remplissage et contour
 Tous les attributs ne peuvent pas être définis avec CSS, et les parties de coloration et de remplissage peuvent être définies avec CSS .
✓ Par exemple, fill, stroke, stroke-dasharray, etc. peuvent être définis avec CSS ; par exemple, les commandes de chemin ne peuvent pas être définies avec CSS.

◼ Quelles propriétés peuvent et ne peuvent pas être définies à l'aide de CSS ?
 Dans la spécification SVG, les attributs sont divisés en attributs PresentationAttributes et Attributes.
Attribut PresentationAttributes (supporte les CSS et les éléments)
Attribut Attributes (ne peut être utilisé que dans les éléments)
✓ Astuces : Ces attributs n'ont pas besoin d'être mémorisés, mémorisez-les si vous les utilisez trop, et testez-les quand vous les oubliez.

◼ CSS remplit, contourne et colore les éléments en SVG, et prend en charge les quatre méthodes d'écriture suivantes :
 Méthode 1 : style CSS en ligne (inline), écrit sur l'attribut style de l'élément
 Méthode 2 : styles CSS en ligne (internes), écrit en neutre

◼ Niveau de priorité du style CSS : style en ligne > style dans les définitions > tête externe/intérieure > remplissage d'attribut

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43094619/article/details/131564575
conseillé
Classement