Ir para conteúdo
Fórum Script Brasil

fpavelino

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que fpavelino postou

  1. 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; }
×
×
  • Criar Novo...