TortueGraphiqueWPF 1.0.1
See the version list below for details.
dotnet add package TortueGraphiqueWPF --version 1.0.1
NuGet\Install-Package TortueGraphiqueWPF -Version 1.0.1
<PackageReference Include="TortueGraphiqueWPF" Version="1.0.1" />
<PackageVersion Include="TortueGraphiqueWPF" Version="1.0.1" />
<PackageReference Include="TortueGraphiqueWPF" />
paket add TortueGraphiqueWPF --version 1.0.1
#r "nuget: TortueGraphiqueWPF, 1.0.1"
#:package TortueGraphiqueWPF@1.0.1
#addin nuget:?package=TortueGraphiqueWPF&version=1.0.1
#tool nuget:?package=TortueGraphiqueWPF&version=1.0.1
TortueGraphiqueWPF
Bibliothèque de dessin style Logo / Tortue pour WPF (.NET 8, Windows), avec un rendu 100 % WPF natif — sans GDI+.
Elle est pensée pour être pilotée depuis un thread d'arrière-plan (simulations, animations) : le dessin s'effectue dans un buffer de pixels thread-safe, et l'image se récupère sous forme de BitmapSource prête à être affichée dans un contrôle <Image>.
Installation
dotnet add package TortueGraphiqueWPF
Exemple minimal
using TortueGraphiqueWPF.Lib.Graphics;
using System.Windows.Media;
var tortue = new Tortue(400, 400);
tortue.ChangerCouleur(Colors.Red);
tortue.Cercle(100);
tortue.ChangerCouleur(Colors.Blue);
tortue.Point(0, 0, Colors.Blue, 12); // repère centré : (0,0) = centre
// À afficher dans un contrôle <Image x:Name="Image" /> :
Image.Source = tortue.ObtenirImage();
Principes
- Repère centré :
(0, 0)est au centre du canvas. X vers la droite, Y vers le bas. - Cohérence :
Point()etTrait()utilisent le même repère centré queAvancer,AllerA,Texte… (ce n'était pas le cas dans la version GDI+ d'origine). - Couleurs :
System.Windows.Media.Color(ex.Colors.Red,Color.FromRgb(...)). - Thread-safe : on peut dessiner depuis un thread de calcul ; l'image obtenue via
ObtenirImage()est gelée (Freeze) donc utilisable directement par le binding.
Principales méthodes
Déplacement : Avancer, Reculer, TournerDroite, TournerGauche, DefinirAngle, AllerA, AllerVers, Centrer.
Stylo : LeverStylo, BaisserStylo, ChangerCouleur, ChangerEpaisseur, ChangerBout.
Dessin : Point, Trait, Carre, Rectangle, Polygone, Cercle, ArcDroite, ArcGauche, Texte.
Divers : Effacer, Reinitialiser, ObtenirImage.
Deux classes : Tortue (fond blanc opaque) et TortueCouche (fond transparent).
Couches superposées
Deux classes : Tortue (fond blanc opaque) et TortueCouche (fond transparent).
Pour superposer plusieurs couches en une seule image :
var fond = new Tortue(400, 400); // couche du dessous (opaque)
var calque1 = new TortueCouche(400, 400); // transparente
var calque2 = new TortueCouche(400, 400); // transparente, au-dessus
fond.Cercle(150);
calque1.Point(0, 0, Colors.Red, 20);
calque2.Texte("bonjour", 14);
// Une seule image, dans l'ordre (fond dessous, calque2 dessus) :
Image.Source = Couches.Composer(fond, calque1, calque2);
Alternative sans composition : empile simplement plusieurs contrôles <Image>
dans un <Grid> (chacun lié au ObtenirImage() d'une couche), WPF compose tout
seul. Couches.Composer(...) sert quand tu veux une seule BitmapSource.
À savoir sur le texte
Le rendu du texte s'appuie sur le moteur de texte de WPF. Si vous utilisez Texte(...),
appelez ObtenirImage() sur le thread UI (c'est le cas par défaut si vous
l'appelez depuis un DispatcherTimer). Sans aucun texte, ObtenirImage() fonctionne
depuis n'importe quel thread.
Licence
MIT
| 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.
Version 1.0.1 :
- Première version WPF native (portage de TortueGraphique GDI+).
- Rendu sans GDI+ : buffer de pixels BGRA + rasteriseur logiciel, thread-safe.
- Récupération de l'image via ObtenirImage() qui renvoie un BitmapSource gelé.
- CORRECTION : Point() et Trait() utilisent désormais le même repère centré
que le reste de l'API (l'ancienne version attendait des coordonnées canvas
brutes pour Point, ce qui était incohérent).
- Utilise System.Windows.Media.Color (WPF) au lieu de System.Drawing.Color.