Pessoa, preciso implementar um programa de geração de imagens por "script".  Para desenhar um círculo, são necessários o Centro e o Raio do Círculo.   x = cos(t) * raio + centro.x y = sen(t) * raio + centro.y  Para desenhar uma reta, são necessárias os pontos inicial e final da reta. Utilize o Algoritmo de Bresenham.  Para desenhar os retângulos, são necessários dois pontos, o superior esquerdo e o inferior direito.  Para desenhar um triangulo, são necessários os pontos dos três vértices. Deve ser permitido ao usuário escolher a cor que será utilizada em cada primitiva gráfica. Para isso, o usuário deve entrar com os valores para as componentes Vermelho ®, Verde (G) e Azul (B) da cor.  A imagem deve ter um tamanho fixo de 512 por 512 pixels.   O que eu consegui fazer até agora foi o circulo estático, com o raio definido, alguém saberia me dar uma dica de como fazer os outros e como fazer para inserir as cores?  O que eu consegui:  #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>  const int x_max = 512; const int y_max = 512; unsigned char imagem[x_max][y_max];   void cria_imagem(){ int i; int raio; //"limpa" imagem (fundo preto) for (i=0; i<x_max; i++) memset(imagem, 0, y_max);  //desenha circulo raio =20; for (i=0; i<=90; i++){ float y = sin(i * M_PI/180);  float x = cos(i * M_PI/180); imagem [int(x*raio+256)][int(y*raio+256)]=255; imagem [int(-x*raio+256)][int(y*raio+256)]=255; imagem [int(x*raio+256)][int(-y*raio+256)]=255; imagem [int(-x*raio+256)][int(-y*raio+256)]=255; } // for (y=0; y<y_max; y++){ // if (x*y<=255)  // imagem[x][y]=(unsigned char)(x*y); // else // imagem[x][y]=(unsigned char) 255; //} //} }  void gera_imagem(){ char * filename = "C:\\Users\\631120020\\Desktop\\circulo2.pbm"; FILE * fp=fopen(filename, "w"); if (fp){ fprintf(fp, "P2 \n"); fprintf(fp, "%d %d\n", x_max, y_max); fprintf(fp, "255 \n"); for (int x=0; x<x_max; x++) for (int y=0; y<y_max; y++) fprintf(fp, "%d " , imagem[x][y]);  fclose(fp); } } int main (int argc, char**argv){ cria_imagem(); gera_imagem(); int x; scanf("%d", x);  return 0; }