Script Python pour créer un cercle composé de 7 parts de pizza aux couleurs de l'arc-en-ciel
Ce script crée un SVG composé de 7 « parts de pizza » de taille égale :
rainbow-pizza.py
from xml.etree.ElementTree import Element, SubElement, tostring
import math
# Fonction pour générer le SVG
def create_rainbow_pizza_svg(filename):
# Définir les propriétés SVG
svg_width = 200
svg_height = 200
radius = 100
cx, cy = svg_width // 2, svg_height // 2
# Couleurs de l'arc-en-ciel
rainbow_colors = [
"red", "orange", "yellow", "green", "blue", "indigo", "violet"
]
# Calculer les angles pour les parts
num_slices = len(rainbow_colors)
angle_per_slice = 2 * math.pi / num_slices
# Créer la racine SVG
svg = Element('svg', {
'xmlns': 'http://www.w3.org/2000/svg',
'viewBox': f"0 0 {svg_width} {svg_height}",
'width': str(svg_width),
'height': str(svg_height),
})
for i, color in enumerate(rainbow_colors):
# Calculer les angles de début et de fin
start_angle = i * angle_per_slice
end_angle = (i + 1) * angle_per_slice
# Calculer les points pour la part
x1 = cx + radius * math.cos(start_angle)
y1 = cy - radius * math.sin(start_angle)
x2 = cx + radius * math.cos(end_angle)
y2 = cy - radius * math.sin(end_angle)
# Créer le chemin pour la part
path_data = (
f"M {cx} {cy} " # Déplacer au centre du cercle
f"L {x2:.2f} {y2:.2f} " # Ligne vers le premier bord de la part
f"A {radius} {radius} 0 0 1 {x1:.2f} {y1:.2f} " # Arc vers le second bord
f"Z" # Fermer le chemin
)
path = SubElement(svg, 'path', {
'd': path_data,
'fill': color,
})
# Écrire dans le fichier
with open(filename, "w") as f:
f.write(tostring(svg, encoding='unicode'))
# Créer le SVG
create_rainbow_pizza_svg("rainbow_pizza.svg")Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow