Oui, on peut déclarer un objet en lui donnant un nom, et l'invoquer plus bas. Y compris plusieurs fois pour afficher plusieurs fois une même forme. Et à chaque fois on peut faire subir diverses homothétie et autres translations.
Je ne savais pas que SVG pouvait faire ça. D'un autre côté, ça ne doit pas être très utilisé par les éditeurs graphiques.
Et puis, il manque quand même des choses assez utiles, comme définir des variables avec des réels, pour éviter d'avoir à répéter des nombres qui ont la même sémantique. Et il n'y a pas d'expression (ou alors, je n'en ai pas vu) permettant de définir un point ou un réel ou un vecteur ou une couleur.
Les fonctions et les structures de contrôles je vois pas bien ce que tu veux dire par là.
Si je veux afficher 50 carrés disposé en rond, j'aimerais pouvoir le faire dans une boucle for plutôt que de définir 50 carrés. C'est impossible de le faire en SVG nativement. Si je veux une fonction qui renvoie une couleur suivant certains paramètres, je ne peux pas. Etc.
Bref, ça montre au moins que tu n'as pas fait une analyse de l'existant très poussée avant de te lancer dans ton propre projet.
XML étant fait pour être facilement étendu, tu devrais peut-être regarder si ça t'aide pas d'étendre SVG plutôt que de partir de 0.
Désolé, je préfère partir de 0. Parce que SVG n'est pas très adapté pour une édition manuelle, comme la plupart des dialectes XML. Et puis je considère que je ne réinvente pas la roue, je pars des mêmes modèles de dessin que SVG, à savoir PostScript (il suffit de voir comment SVG est né pour le comprendre). Toutes les libs vectorielles 2D font pareil et on ne leur dit pas de se baser sur SVG.
[^] # Re: Pourquoi ?
Posté par rewind (Mastodon) . En réponse au journal Un langage de description de diagramme/figure. Évalué à 3.
Du coup, j'ai parcouru la norme SVG 1.1.
Je ne savais pas que SVG pouvait faire ça. D'un autre côté, ça ne doit pas être très utilisé par les éditeurs graphiques.
Et puis, il manque quand même des choses assez utiles, comme définir des variables avec des réels, pour éviter d'avoir à répéter des nombres qui ont la même sémantique. Et il n'y a pas d'expression (ou alors, je n'en ai pas vu) permettant de définir un point ou un réel ou un vecteur ou une couleur.
Si je veux afficher 50 carrés disposé en rond, j'aimerais pouvoir le faire dans une boucle for plutôt que de définir 50 carrés. C'est impossible de le faire en SVG nativement. Si je veux une fonction qui renvoie une couleur suivant certains paramètres, je ne peux pas. Etc.
Désolé, je préfère partir de 0. Parce que SVG n'est pas très adapté pour une édition manuelle, comme la plupart des dialectes XML. Et puis je considère que je ne réinvente pas la roue, je pars des mêmes modèles de dessin que SVG, à savoir PostScript (il suffit de voir comment SVG est né pour le comprendre). Toutes les libs vectorielles 2D font pareil et on ne leur dit pas de se baser sur SVG.