Advertisement
mario_mos

projet

Jul 31st, 2023
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string.h>
  6.  
  7. #include "gd.h"
  8.  
  9. /* Énoncé : 3 int puis 3 string et nommage string en argument ./programme
  10. argument lors de l'appell de la fonction
  11.  
  12. pie -p 40,50,10 -l USA,CANADA,FRANCE Alcooliques.png
  13.  
  14. pie -p 40,50,10 -l USA,CANADA,FRANCE -t histo Alcooliques.png
  15.  
  16. */
  17.  
  18. int main(int argc, char *argv[])
  19. {
  20.  
  21. /*--------Librarie gd-------- */
  22.  
  23.   gdImagePtr im;
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  /* couleurs */
  30.   int black;
  31.   int white;
  32.   int yellow;
  33.   int blue;
  34.   int red;
  35.   int green;
  36.   int purple;
  37.  
  38.  
  39.  
  40. /*creation image 2400x1600 */
  41.   im = gdImageCreate(2400, 1600);
  42.  
  43.  
  44. /* Allocate the color white (red, green and blue all maximum). */
  45.   black  = gdImageColorAllocate(im, 0, 0, 0);
  46.   white  = gdImageColorAllocate(im, 255, 255, 255);
  47.   yellow = gdImageColorAllocate(im, 255, 255, 0);
  48.   blue   = gdImageColorAllocate(im, 0, 0, 255);
  49.   red    = gdImageColorAllocate(im, 255, 0, 0);
  50.   green  = gdImageColorAllocate(im, 0, 255, 0);
  51.   purple = gdImageColorAllocate(im, 255, 0, 255);
  52.  
  53.  
  54.  
  55.  
  56. /*---------------------------- Dessins ----------------------------------------------*/
  57.  
  58. /*  CERCLE 360, diamètre = 1200 , contour blanc  */
  59. gdImageArc (im, 1200,800 , 1200, 1200, 0, 360, white);
  60.  
  61. /* Camembert_line
  62. fonction utilisée : void gdImageFilledArc(gdImagePtr im, int cx,int cy,int w,int h,int s,int e,int color,int style)
  63. int s(start) à int e(end) definira le % de la part.*/
  64.  
  65. /******************************************/
  66.  
  67.  // on récupère l'argument
  68. int s; // position angle début
  69. int e; // position angle fin
  70. int i; // i pour la for
  71. int n = 6; // nombre d'arcs
  72. int colors[n]; // tableau de couleurs
  73. colors[0] = yellow;
  74. colors[1] = green;
  75. colors[2] = blue;
  76. colors[3] = red;
  77. colors[4] = white;
  78. colors[5] = purple;
  79.  
  80.  /*Version loop sur les arcs*/
  81.  
  82.     for(int j = 1 ; j < argc ; j++) {
  83.         int x = atoi(argv[j]);
  84.          e = (s + x * 360 / 100);
  85.         gdImageFilledArc(im, 1200, 800, 1200, 1200, s, e, colors[j], 100); // draw the arc
  86.         s = e; // update the start angle
  87.         //printf("j : %d x : %d e : %d s : %d\n",j,x,e,s);
  88.  
  89.         /* liens avec les strings passés en argument*/
  90.         //char *a = argv[j];
  91.        
  92.  
  93.     }
  94.  
  95.  
  96.     /*récupérer les strings passés en arguments a,b,c nom des pays, N nom du fichier */
  97.  
  98.     //char* a;
  99.     //char* b;
  100.     //char* c;
  101.     //char* N;
  102.  
  103.     //a = argv[4];
  104.     //b = argv[5];
  105.     //c = argv[6];
  106.     //N = argv[7];
  107. /*----------------------------------------------------------------------------------------------*/
  108. // en "dur"
  109. //    int s1 = 0;
  110. //    int e1 = x * (360/100);
  111.  
  112. //gdImageFilledArc(im,1200,800 , 1200, 1200 , s1 , e1 ,yellow, 100);
  113.  
  114. //int s2 = e1;
  115. //int e2 = x * (360/100) + e1;
  116. //gdImageFilledArc(im,1200,800 , 1200, 1200 , s2 , e2 ,green, 100);
  117.  
  118. //int s3 = e2;
  119. //int e3 = x * (360/100) + e2;
  120. //gdImageFilledArc(im,1200,800 , 1200, 1200 , s3 , e3 ,blue, 100);
  121.  
  122. /*------------------------------------------------------------*/
  123.  
  124.  
  125.  
  126.  
  127.  
  128. /* Output en format PNG. */
  129.     char *filename = argv[7];
  130.     FILE *fp = fopen(filename, "wb");
  131.     // écriture image
  132.     gdImagePng(im, fp);
  133.     // fermeture fichier
  134.     fclose(fp);
  135.     // destruction image
  136.     gdImageDestroy(im);
  137.     return 0;
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144. }
  145.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement