Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Réponse rapide: Pour dessiner des formes SVG en Python, créez un
SVGDocument, définissez la taille et le viewBox de la racine SVG, créez des éléments de forme avec
create_element_ns(), définissez les attributs de géométrie et de style avec
set_attribute(), ajoutez chaque forme à la racine et enregistrez le SVG.
1from aspose.svg import SVGDocument
2
3with SVGDocument() as document:
4 svg = document.root_element
5 rect = document.create_element_ns("http://www.w3.org/2000/svg", "rect")
6 rect.set_attribute("width", "80")
7 rect.set_attribute("height", "50")
8 svg.append_child(rect)
9 document.save("shapes.svg")Dans cet article, vous apprendrez à:
rect, circle, ellipse, line, polyline et polygon;fill et stroke aux formes générées;Les formes SVG sont les blocs les plus simples pour générer des diagrammes, icônes, graphiques, badges et illustrations. Chaque forme possède ses propres attributs de géométrie: un rectangle utilise x, y, width et height; un cercle utilise cx, cy et r; un polygone utilise une liste points. Pour un contexte plus large sur le balisage SVG, consultez le guide
SVG Shapes.
| Élément | Attributs de géométrie principaux | À utiliser pour |
|---|---|---|
<rect> | x, y, width, height, rx | Boîtes, panneaux, cartes et rectangles arrondis |
<circle> | cx, cy, r | Points, badges, marqueurs et icônes circulaires |
<ellipse> | cx, cy, rx, ry | Ovales ou marqueurs non circulaires |
<line> | x1, y1, x2, y2 | Un seul segment droit |
<polyline> | points | Segments ouverts connectés |
<polygon> | points | Formes fermées comme les triangles et les étoiles |
Utilisez ce workflow lorsque vous devez générer un dessin SVG à partir de primitives de forme:
SVGDocument.width, height et viewBox de la racine SVG.document.create_element_ns(namespace_uri, qualified_name).set_attribute().append_child().document.save(output_path).Utilisez rectangles, cercles et ellipses lorsque l’illustration peut être décrite par des valeurs simples de centre, taille et rayon. L’exemple suivant crée une petite scène avec un rectangle plein comme arrière-plan, un cercle comme objet principal et une ellipse comme ombre douce.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "svg-basic-shapes.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "300")
13 svg.set_attribute("height", "200")
14 svg.set_attribute("viewBox", "0 0 300 200")
15
16 rectangle = document.create_element_ns(namespace_uri, "rect")
17 rectangle.set_attribute("width", "300")
18 rectangle.set_attribute("height", "200")
19 rectangle.set_attribute("fill", "#e6eafa")
20 svg.append_child(rectangle)
21
22 circle = document.create_element_ns(namespace_uri, "circle")
23 circle.set_attribute("cx", "150")
24 circle.set_attribute("cy", "75")
25 circle.set_attribute("r", "50")
26 circle.set_attribute("fill", "#2e86de")
27 circle.set_attribute("stroke", "#0d47a1")
28 circle.set_attribute("stroke-width", "8")
29 svg.append_child(circle)
30
31 ellipse = document.create_element_ns(namespace_uri, "ellipse")
32 ellipse.set_attribute("cx", "150")
33 ellipse.set_attribute("cy", "155")
34 ellipse.set_attribute("rx", "70")
35 ellipse.set_attribute("ry", "20")
36 ellipse.set_attribute("fill", "#90a4ae")
37 ellipse.set_attribute("opacity", "0.35")
38 svg.append_child(ellipse)
39
40 document.save(output_path)Le SVG enregistré contient uniquement des éléments DOM générés. Cette approche est utile lorsqu’une application calcule les positions des formes, puis écrit le fichier SVG final.
L’illustration montre comment les trois éléments fonctionnent ensemble: <rect> couvre tout le viewBox comme arrière-plan clair, <circle> crée l’objet bleu et l’<ellipse> semi-transparente en dessous se lit comme une ombre.

Utilisez line pour un segment, polyline pour une ligne ouverte connectée et polygon pour une forme fermée. L’attribut points est une liste de paires de coordonnées séparées par des espaces.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "svg-lines-polygons.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "520")
13 svg.set_attribute("height", "300")
14 svg.set_attribute("viewBox", "0 0 520 300")
15
16 line = document.create_element_ns(namespace_uri, "line")
17 line.set_attribute("x1", "30")
18 line.set_attribute("y1", "20")
19 line.set_attribute("x2", "130")
20 line.set_attribute("y2", "290")
21 line.set_attribute("stroke", "#4387be")
22 line.set_attribute("stroke-width", "10")
23 svg.append_child(line)
24
25 polyline = document.create_element_ns(namespace_uri, "polyline")
26 polyline.set_attribute("points", "100,100 160,50 220,100 280,50 340,100 400,50")
27 polyline.set_attribute("fill", "none")
28 polyline.set_attribute("stroke", "#fb6796")
29 polyline.set_attribute("stroke-width", "5")
30 svg.append_child(polyline)
31
32 polygon = document.create_element_ns(namespace_uri, "polygon")
33 polygon.set_attribute("points", "360,290 430,20 500,290")
34 polygon.set_attribute("fill", "#86a9b9")
35 polygon.set_attribute("stroke", "#fb6796")
36 polygon.set_attribute("stroke-width", "5")
37 svg.append_child(polygon)
38
39 document.save(output_path)La ligne et la polyligne utilisent stroke, car elles dessinent des contours. Le polygone utilise à la fois fill et stroke, car il crée une zone fermée.
L’illustration montre la différence entre les trois éléments. <line> dessine un segment droit, <polyline> dessine un zigzag ouvert depuis la liste points, et <polygon> ferme automatiquement ses points pour former un triangle rempli.

| Problème | Solution |
|---|---|
| La forme n’apparaît pas | Vérifiez que l’élément a été ajouté à la racine SVG avec append_child() |
| La forme est hors de la zone visible | Vérifiez viewBox, les coordonnées, width et height |
| La ligne est invisible | Définissez stroke et stroke-width; fill ne rend pas une ligne visible |
| Le polygone semble ouvert ou incorrect | Vérifiez les paires de coordonnées points et leur ordre |
| Le rectangle arrondi n’est pas arrondi | Définissez rx ou ry sur l’élément <rect> |
Les réponses ci-dessous utilisent le même modèle DOM que les exemples: créer l’élément SVG avec document.create_element_ns(namespace_uri, element_name), définir ses attributs de géométrie et de style, l’ajouter à la racine SVG et enregistrer le document.
Vous pouvez créer des formes SVG de base comme rect, circle, ellipse, line, polyline et polygon. Utilisez ces éléments pour les boîtes, badges, marqueurs, diagrammes simples, lignes connectées, triangles et autres formes à arêtes droites.
Utilisez un élément rect et définissez x, y, width et height. Ajoutez des attributs de style comme fill, stroke ou rx, ajoutez le rectangle à la racine SVG et enregistrez le document.
Utilisez un élément circle avec cx, cy et r. Ajoutez des attributs fill ou stroke, ajoutez le cercle à la racine SVG et enregistrez le SVG.
Utilisez un élément ellipse avec cx et cy pour le centre, puis définissez rx et ry pour les rayons horizontal et vertical. Ajoutez fill, stroke ou opacity avant d’ajouter l’élément à la racine SVG.
Utilisez un élément line et définissez x1, y1, x2 et y2. Une ligne nécessite stroke et généralement stroke-width; définir seulement fill ne la rendra pas visible.
Utilisez un élément polyline et définissez l’attribut points avec des paires de coordonnées comme "30,120 70,75 115,110". Définissez fill="none" lorsque vous voulez uniquement le contour connecté.
Utilisez un élément polygon avec trois paires de coordonnées dans l’attribut points, par exemple "50,10 90,80 10,80". Ajoutez fill et stroke, ajoutez le polygone à la racine SVG et enregistrez le SVG.
Utilisez un élément rect et définissez rx ou ry en plus de x, y, width et height. Les valeurs rx et ry contrôlent le rayon des coins.
Une forme est souvent invisible si elle n’a pas été ajoutée à la racine SVG, si elle se trouve hors du viewBox ou si les attributs de peinture nécessaires manquent. Pour les lignes et polylignes, définissez stroke et stroke-width; pour les formes fermées, définissez fill, stroke ou les deux.
Utilisez polygon pour les formes fermées composées de segments droits. Utilisez <path> lorsque la forme nécessite des courbes, des commandes mixtes, plusieurs sous-chemins ou une géométrie plus complexe.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.