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.svg

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