TortueGraphique 1.0.0
See the version list below for details.
dotnet add package TortueGraphique --version 1.0.0
NuGet\Install-Package TortueGraphique -Version 1.0.0
<PackageReference Include="TortueGraphique" Version="1.0.0" />
<PackageVersion Include="TortueGraphique" Version="1.0.0" />
<PackageReference Include="TortueGraphique" />
paket add TortueGraphique --version 1.0.0
#r "nuget: TortueGraphique, 1.0.0"
#:package TortueGraphique@1.0.0
#addin nuget:?package=TortueGraphique&version=1.0.0
#tool nuget:?package=TortueGraphique&version=1.0.0
🐢 TortueGraphique
Bibliothèque de dessin graphique style Logo/Tortue pour .NET 8.0 Windows Forms.
Créez facilement des dessins, des animations et des jeux éducatifs avec une API simple et intuitive inspirée du langage Logo.
✨ Fonctionnalités
- 🐢 API style Logo : Commandes intuitives (Avancer, Tourner, etc.)
- 🎨 Primitives de dessin : Points, traits, cercles, polygones, texte
- 🎭 Couches transparentes : Superposez plusieurs dessins
- ✨ Rendu haute qualité : Antialiasing et optimisation GDI+
- 🎨 Gestion des couleurs : Color, RGB, RGBA avec transparence
- 📐 Formes géométriques : Carré, rectangle, cercle, polygones réguliers
- 📝 Support du texte : Polices personnalisables, tailles, styles
- 🔄 Pattern Dispose : Gestion automatique des ressources
📦 Installation
Via .NET CLI
dotnet add package TortueGraphique
Via Package Manager Console
Install-Package TortueGraphique
Via Visual Studio
- Clic droit sur le projet → Gérer les packages NuGet
- Rechercher "TortueGraphique"
- Cliquer sur Installer
🚀 Démarrage rapide
Exemple simple : Dessiner un carré
using TortueGraphique.Lib.Graphics;
using System.Drawing;
using System.Windows.Forms;
// Créer une tortue sur fond blanc (800x600)
using var tortue = new Tortue(800, 600);
// Dessiner un carré rouge
tortue.ChangerCouleur(Color.Red);
tortue.ChangerEpaisseur(3);
tortue.BaisserStylo();
for (int i = 0; i < 4; i++)
{
tortue.Avancer(100);
tortue.TournerDroite(90);
}
// Afficher dans un PictureBox
pictureBox.Image = tortue.ObtenirBitmap();
Résultat
Un carré rouge de 100 pixels de côté avec un trait de 3 pixels d'épaisseur.
📚 Documentation
Commandes de déplacement
tortue.Avancer(100); // Avance de 100 pixels
tortue.Reculer(50); // Recule de 50 pixels
tortue.TournerDroite(90); // Tourne de 90° vers la droite
tortue.TournerGauche(45); // Tourne de 45° vers la gauche
tortue.DefinirAngle(0); // Définit l'angle absolu (0° = droite)
Gestion du stylo
tortue.BaisserStylo(); // Active le dessin
tortue.LeverStylo(); // Désactive le dessin
tortue.ChangerCouleur(Color.Blue); // Change la couleur
tortue.ChangerCouleur(255, 0, 0); // Rouge en RGB
tortue.ChangerEpaisseur(5); // Change l'épaisseur du trait
Positionnement
tortue.AllerA(400, 300); // Téléporte sans tracer
tortue.AllerVers(400, 300); // Déplace en traçant (si stylo baissé)
tortue.Centrer(); // Revient au centre du canvas
tortue.Reinitialiser(); // Réinitialise position, angle et stylo
Formes rapides
tortue.Carre(100); // Carré de 100 pixels de côté
tortue.Rectangle(150, 80); // Rectangle 150x80
tortue.Cercle(50); // Cercle de rayon 50
tortue.Polygone(6, 80); // Hexagone (6 côtés de 80px)
Texte
// Texte simple
tortue.Texte("Hello!", 24);
// Avec police personnalisée
tortue.Texte("Bonjour", 20, "Arial");
// Avec style
tortue.Texte("Bold", 18, "Arial", FontStyle.Bold);
// Avec couleur spécifique
tortue.Texte("Red", 16, "Arial", Color.Red);
Primitives de dessin
// Point
tortue.Point(100, 100, Color.Red, diametre: 5);
tortue.Point(150, 150, 255, 0, 0, diametre: 10); // RGB
// Trait
tortue.Trait(0, 0, 100, 100, Color.Blue, TypeBoutTrait.Arrondi, epaisseur: 3);
🎭 Couches transparentes
Utilisez TortueCouche pour créer des dessins superposés avec fond transparent.
using TortueGraphique.Lib.Graphics;
using System.Drawing;
// Couche de fond (opaque)
using var fond = new Tortue(800, 600);
fond.ChangerCouleur(Color.Blue);
fond.Cercle(150);
// Couche transparente
using var couche = new TortueCouche(800, 600);
couche.ChangerCouleur(Color.FromArgb(128, 255, 0, 0)); // Rouge semi-transparent
couche.AllerA(400, 300);
couche.Carre(100);
// Fusionner les couches
Bitmap resultat = new Bitmap(fond.ObtenirBitmap());
using (Graphics g = Graphics.FromImage(resultat))
{
g.DrawImage(couche.ObtenirBitmap(), 0, 0);
}
pictureBox.Image = resultat;
🎮 Exemple : Spirale colorée
using var tortue = new Tortue(800, 600);
tortue.BaisserStylo();
int[] couleurs = {
Color.Red.ToArgb(),
Color.Orange.ToArgb(),
Color.Yellow.ToArgb(),
Color.Green.ToArgb(),
Color.Blue.ToArgb(),
Color.Purple.ToArgb()
};
for (int i = 0; i < 360; i++)
{
tortue.ChangerCouleur(Color.FromArgb(couleurs[i % couleurs.Length]));
tortue.Avancer(i * 0.5f);
tortue.TournerDroite(59);
}
pictureBox.Image = tortue.ObtenirBitmap();
🎨 Exemples d'utilisation
Fractale : Arbre
void DessinerArbre(Tortue tortue, float longueur, int profondeur)
{
if (profondeur == 0) return;
tortue.Avancer(longueur);
// Branche droite
tortue.TournerDroite(30);
DessinerArbre(tortue, longueur * 0.7f, profondeur - 1);
tortue.TournerGauche(30);
// Branche gauche
tortue.TournerGauche(30);
DessinerArbre(tortue, longueur * 0.7f, profondeur - 1);
tortue.TournerDroite(30);
tortue.Reculer(longueur);
}
// Utilisation
using var tortue = new Tortue(800, 600);
tortue.AllerA(400, 550);
tortue.DefinirAngle(90); // Vers le haut
tortue.ChangerCouleur(Color.Green);
tortue.BaisserStylo();
DessinerArbre(tortue, 100, 8);
Jeu simple
Consultez le projet d'exemple JeuxBalle pour voir comment créer un jeu de casse-briques complet avec gestion des collisions et animations.
🛠️ Configuration requise
- .NET 8.0 ou supérieur
- Windows (utilise GDI+ via System.Drawing)
- Windows Forms pour l'affichage
📄 Licence
Ce projet est sous licence MIT.
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Signaler des bugs
- Proposer de nouvelles fonctionnalités
- Soumettre des pull requests
👤 Auteur
Marc - Développeur passionné par la programmation graphique et l'éducation
🙏 Remerciements
Inspiré par le langage Logo et les tortues graphiques de Seymour Papert.
📝 Changelog
Version 1.0.0 (2025-01-21)
- 🎉 Première version publique
- ✨ API complète de dessin style Logo
- 🎭 Support des couches transparentes
- 📝 Support du texte avec polices personnalisées
- 🎨 Rendu haute qualité avec antialiasing
- 🔄 Pattern IDisposable pour gestion des ressources
💡 Astuce : Utilisez using avec vos tortues pour libérer automatiquement les ressources !
using var tortue = new Tortue(800, 600);
// Pas besoin d'appeler Dispose() manuellement
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Première version stable de TortueGraphique. Inclut API complète de dessin, couches transparentes, support du texte et rendu haute qualité.