Téléchargé 3 fois
Vote des utilisateurs
1
0
Détails
Licence : Non renseignée
Mise en ligne le 5 juillet 2015
Langue : Français
Référencé dans
Navigation
Exemples d'utilisation de l'unité WinGraph
Exemples d'utilisation de l'unité WinGraph
Collection de petits programmes utilisant l'unité WinGraph, testés avec Free Pascal 2.6.4.
Nombre de ces programmes ont été originellement écrits pour l'unité Graph de Turbo Pascal.
Nombre de ces programmes ont été originellement écrits pour l'unité Graph de Turbo Pascal.
Nos ressources disponibles
J'ai planché sur le sujet : "Comment convertir un code utilisant l'unité Graph (ou l'une des unités de Free Pascal qui en ont repris la syntaxe) en code utilisant BGRABitmap ?"
Eh bien, ce n'est pas évident, parce que les fonctions de l'une et de l'autre ne se correspondent pas à première vue. Pourtant je trouve l'idée intéressante.
Je vous montre une chose que je viens de faire. Vos observations seront les bienvenues.
J'ai pris un programme WinGraph (originellement écrit pour Turbo Pascal). J'ai retiré les "uses", et j'ai déclaré des fonctions homonymes aux fonctions manquantes. Ces fonctions produisent du code source. Voici le résultat à ce jour :
Le dessin final n'est pas très réussi, mais l'idée est là. Qu'en pensez-vous ?
Eh bien, ce n'est pas évident, parce que les fonctions de l'une et de l'autre ne se correspondent pas à première vue. Pourtant je trouve l'idée intéressante.
Je vous montre une chose que je viens de faire. Vos observations seront les bienvenues.
J'ai pris un programme WinGraph (originellement écrit pour Turbo Pascal). J'ai retiré les "uses", et j'ai déclaré des fonctions homonymes aux fonctions manquantes. Ces fonctions produisent du code source. Voici le résultat à ce jour :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | program Clowns3; uses BGRABitmap, BGRABitmapTypes; {$I utils} var bmp: TBGRABitmap; color: TBGRAPixel; begin bmp := TBGRABitmap.Create(640, 480, LongWordToBGRA($191970)); color := LongWordToBGRA($FFFFFF); bmp.FillEllipseAntialias(163, 239, 100, 150, color); bmp.FillEllipseAntialias(476, 239, 100, 150, color); color := LongWordToBGRA($FF80FF); bmp.RoundRectAntialias(143, 244, 183, 284, 20, 20, color, 2, []); color := LongWordToBGRA($90EE90); bmp.RoundRectAntialias(456, 244, 496, 284, 20, 20, color, 2, []); color := LongWordToBGRA($ADD8E6); bmp.FillEllipseAntialias(163, 299, 50, 55, color); bmp.FillEllipseAntialias(163, 299, 50, 20, color); bmp.FillEllipseAntialias(163, 299, 50, 54, color); bmp.FillEllipseAntialias(163, 299, 50, 21, color); color := LongWordToBGRA($FF0000); bmp.FillEllipseAntialias(476, 299, 50, 55, color); bmp.FillEllipseAntialias(476, 299, 50, 20, color); bmp.FillEllipseAntialias(476, 299, 50, 21, color); bmp.FillEllipseAntialias(476, 299, 50, 54, color); bmp.FillEllipseAntialias(123, 239, 20, 60, color); bmp.FillEllipseAntialias(123, 243, 20, 10, color); color := LongWordToBGRA($FF); bmp.RoundRectAntialias(113, 233, 133, 253, 10, 10, color, 2, []); color := LongWordToBGRA($0); bmp.RoundRectAntialias(120, 240, 126, 246, 3, 3, color, 2, []); color := LongWordToBGRA($FFFFFF); bmp.RoundRectAntialias(113, 233, 133, 253, 10, 10, color, 2, []); color := LongWordToBGRA($FF0000); bmp.FillEllipseAntialias(203, 239, 20, 60, color); bmp.FillEllipseAntialias(203, 243, 20, 10, color); color := LongWordToBGRA($FF); bmp.RoundRectAntialias(193, 233, 213, 253, 10, 10, color, 2, []); color := LongWordToBGRA($0); bmp.RoundRectAntialias(200, 240, 206, 246, 3, 3, color, 2, []); color := LongWordToBGRA($FFFFFF); bmp.RoundRectAntialias(193, 233, 213, 253, 10, 10, color, 2, []); color := LongWordToBGRA($FF0000); bmp.FillEllipseAntialias(521, 239, 20, 60, color); bmp.FillEllipseAntialias(521, 243, 20, 10, color); color := LongWordToBGRA($FF); bmp.RoundRectAntialias(511, 233, 531, 253, 10, 10, color, 2, []); color := LongWordToBGRA($0); bmp.RoundRectAntialias(518, 240, 524, 246, 3, 3, color, 2, []); color := LongWordToBGRA($FFFFFF); bmp.RoundRectAntialias(511, 233, 531, 253, 10, 10, color, 2, []); color := LongWordToBGRA($FF0000); bmp.FillEllipseAntialias(434, 239, 20, 60, color); bmp.FillEllipseAntialias(434, 243, 20, 10, color); color := LongWordToBGRA($FF); bmp.RoundRectAntialias(424, 233, 444, 253, 10, 10, color, 2, []); color := LongWordToBGRA($0); bmp.RoundRectAntialias(431, 240, 437, 246, 3, 3, color, 2, []); color := LongWordToBGRA($FFFFFF); bmp.RoundRectAntialias(424, 233, 444, 253, 10, 10, color, 2, []); color := LongWordToBGRA($FF00FF); bmp.RoundRectAntialias(85, 85, 115, 115, 15, 15, color, 2, []); color := LongWordToBGRA($90EE90); bmp.RoundRectAntialias(64, 109, 94, 139, 15, 15, color, 2, []); color := LongWordToBGRA($ADD8E6); bmp.RoundRectAntialias(50, 136, 80, 166, 15, 15, color, 2, []); color := LongWordToBGRA($FFFF); bmp.RoundRectAntialias(41, 165, 71, 195, 15, 15, color, 2, []); color := LongWordToBGRA($FFFF00); bmp.RoundRectAntialias(35, 193, 65, 223, 15, 15, color, 2, []); bmp.FillEllipseAntialias(477, 180, 100, 50, color); bmp.FillEllipseAntialias(477, 180, 100, 50, color); bmp.SaveToFile('result.png'); bmp.Free; end. |
Merci ! La plupart ne sont pas de moi, je les ai glanés ici et là, triés, testés et adaptés à WinGraph. Je pense mettre à jour la collection de temps en temps, en y incluant des exemples plus avancés. J'ai fait encore quelques trouvailles cet après-midi. Connaissez-vous Nacho Cabanes ? Les exemples de ses différents tutoriels sur la programmation en Pascal sont de petits bijoux.
Il s'agissait de produire du code source pour Lazarus, en captant les données et les opérations du programme original. Au lieu de lire le fichier, j'ai trouvé amusant de modifier le programme pour lui faire produire le code en question.
Je ne sais pas ce que vaut cette idée, mais c'était un bon exercice.
Il s'agissait de produire du code source pour Lazarus, en captant les données et les opérations du programme original. Au lieu de lire le fichier, j'ai trouvé amusant de modifier le programme pour lui faire produire le code en question.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | var gList: TStringList; procedure SetBkColor(color: longword); begin gList.Add(Format(' bmp := TBGRABitmap.Create(%d, %d, LongWordToBGRA($%x));', [MAXX + 1, MAXY + 1, color])); end; |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.