Étape 12 : Coordonnées XY d’un SVG (Code Python)
Intro
Nous avons besoin d’un moyen facile de créer les images que nous voulons dessiner, donc j’ai choisi d’utiliser Inkscape (qui est gratuit) pour attirer les SVG (graphiques vectoriels adaptables). Un SVG est en fait un type de fichier basé sur XML, donc vous pouvez analyser il assez facilement avec python. Il peut devenir très compliqué, mais si nous limitons nos dessins d’objets path, c’est simple.
Le code python que j’ai écrit ci-dessous peut être exécuté sur votre ordinateur afin que vous pouvez afficher la sortie, une fois que vous le comprenez il est facile à mettre en œuvre la même chose sur l’Edison dans notre contrôleur.
Dessin
Première inkscape intall et tirage au sort quelque chose de simple avec l’outil en ligne (mon dessin du logo Intel est jointe)
Assurez-vous que les coordonnées sont définies à absolu en procédant comme suit :
- Ctrl + Maj + p
- entrée/sortie
- sortie svg
- données du chemin d’accès
- format de chaîne de chemin d’accès : absolu
Si vous dessinez des chemins compliqués ou utilisez les outils de traçage, assurez-vous d’abord « séparer » les chemins d’accès, ou le script ne traitera pas eux.
Une fois que vous avez appliqué ce paramètre, sélectionnez l’ensemble de l’image (ctrl + a) et déplacez-le pour actualiser les coordonnées, puis enregistrer sous un svg
En utilisant des coordonnées absolues considérablement réduit le traitement que nous devons faire pour démouler les chemins SVG dans des segments de ligne définis par paires de coordonnées x, y.
Code python
Voici un tout petit peu de code python qui lit dans un fichier SVG et, en utilisant le module « minidom », analyse le fichier pour les tracés.
Chaque chemin est constitué d’une série de commandes (tels que les am' ou 'le) suivie d’une coordonnée. Voici quelques exemples (lisez ceci pour les choses sérieuses : lien) :
- Suis ' signifie, « placer la plume dans cette coordonnée »
- suis ' moyens, « déplacer la plume ce parent lointain, à la position actuelle »
- « L » signifie, « placer la plume dans cette coordonnée, tout en dessinant une ligne »
- suis ' moyens, « déplacer la plume ce parent lointain, au poste actuel, tout en dessinant une ligne »
- Moyens « Z » ou « z ». « tracer une ligne retour à où nous avons commencé (la forme à proximité)
J’ai choisi juste faire face à "M", « L » et « Z » dans cet exemple, d'où l’exigence de coordonnées absolues.
J’ai aussi inclus un peu de code qui utilise Matplotlib (un outil de traçage de python) pour dessiner le SVG et l’enregistrer comme un PNG pour le visionnement.
svgExtractor.py