int main(){
    float raio, lado, apotema;
    Ponto p1, p2;

    printf("Digite o valor do raio do circulo: ");
    scanf("%f", &raio);

    lado = raio * sqrt(2);
    apotema = lado/2;

    p1.x = 0;
    p1.y = 0;

    p2.x = -apotema;
    p2.y = -apotema;

    AbreJanela(400, 400, "Quadrado inscrito");
    PintarFundo(255, 255, 255);
    MostraPlanoCartesiano(10);

    CriaCirculo(raio, p1);
    Pintar(255, 0, 0);

    CriaQuadrado(lado, p2);
    Pintar(0, 0, 255);

    Desenha();

    return 0;
}
void Arcoiris()
{
	 Apagar('R');
     Apagar('G');
	 Apagar('B');
     Pintar(color);
}
Exemple #3
0
int main(){
    int angulo;
    float anguloRad, raio;
    Ponto p1, p2;

    printf("Digite um angulo de 0 a 360 graus:");
    scanf("%d", &angulo);

    printf("Digite um raio de 0 a 100:");
    scanf("%f", &raio);

    p1.x = 0;
    p2.x = 0;

    anguloRad = (PI * angulo)/180;

    p2.y = sin(anguloRad) * raio;
    p2.x = cos(anguloRad) * raio;


    AbreJanela(400, 400, "Quadrante da reta");
    PintarFundo(255, 255, 255);
    MostraPlanoCartesiano(10);

    CriaReta(p1, p2);

    if(p2.x > 0){
        if(p2.y > 0)
            Pintar(255, 0, 0); //vermelho: 1 quadrante
        else
            Pintar(0, 0, 0); //preto: 4 quadrante
    }
    else{
        if(p2.y > 0)
            Pintar(0, 255, 0); //verde: 2 quadrante
        else
            Pintar(0, 0, 255); //azul: 3 quadrante
    }

    Desenha();

}
Exemple #4
0
int main(){
    float raio, d;
    Ponto centro, p;

    printf("Digite o valor do raio da circunferencia: ");
    scanf("%f", &raio);
    printf("\nDigite a posicao x do centro da circunferencia: ");
    scanf("%f", &centro.x);
    printf("\nDigite a posicao y do centro da circunferencia: ");
    scanf("%f", &centro.y);

    printf("\nDigite a posicao x de um ponto: ");
    scanf("%f", &p.x);
    printf("\nDigite a posicao y de um ponto: ");
    scanf("%f", &p.y);

    d = sqrt(pow(centro.x - p.x, 2) + pow(centro.y - p.y, 2));

    if(d > raio){
        AbreJanela(400, 400, "Ponto fora da circunferencia");
    }
    else{
        AbreJanela(400, 400, "Ponto dentro da circunferencia");
    }

    PintarFundo(255, 255, 255);
    MostraPlanoCartesiano(10);

    CriaCircunferencia(raio, centro); @\label{line:CriaCircunferencia}@

    Pintar(255, 0, 0);

    CriaPonto(p); @\label{line:CriaPonto}@
    Pintar(0, 0, 255);
    Grafite(10); @\label{line:Grafite}@

    Desenha();

    return 0;
}
Exemple #5
0
int main(){
    Ponto p1, p2, p3;
    AbreJanela(400, 400, "Estrela de Davi");

    p1.x = -25;
    p1.y = 0;
    CriaTriangulo(50, 50, p1); //(base, altura)
    Pintar(255, 255, 0);

    p1.x = -25;
    p1.y = 35;

    p2.x = 25;
    p2.y = 35;

    p3.x = 0;
    p3.y = -15;
    @\label{line:CriaPoligono}@ CriaPoligono(3, p1, p2, p3); //(quantidade de pontos, p1, p2, ...)
    Pintar(255, 255, 0);

    Desenha();
}
void defineCenario(Ponto *alvo, Ponto *partida, int *grupo_wolverine, int imgbackground, int imgmagneto_standing, int imgwolverine_standing, int colisao){
    Ponto p;

    p.x = -100;
    p.y = -100;
    CriaRetangulo(400, 264, p);
    Pintar(255, 255, 255);
    AssociaImagem(imgbackground);

    if(colisao == 1) //Comeca uma nova fase
        p.x = rand()%20 - 100; //-100 para comecar do lado esquerdo da tela
    else //Repete fase anterior
        p.x = (*partida).x - 25;

    ////Magneto////
    CriaGrupo();

    if(colisao == 1) //Comeca uma nova fase
        (*alvo).x = (p.x) + rand()%50 + 100;
    else //Repete a fase anterior
        (*alvo).x = (*alvo).x;
    (*alvo).y = -100;

    CriaQuadrado(TAMANHOQUADRADO, *alvo);
    Pintar(255, 255, 255);
    AssociaImagem(imgmagneto_standing);
    //////////////////

    ////Wolverine////
    *grupo_wolverine = CriaGrupo();
    (*partida).x = -100;
    (*partida).y = -15;
    CriaQuadrado(TAMANHOQUADRADO, *partida);
    Pintar(255, 255, 255);
    AssociaImagem(imgwolverine_standing);
    //////////////////
}
Exemple #7
0
int main(){
    Ponto p;
    AbreJanela(400, 400, "Boneco palito");
    PintarFundo(255, 255, 255);

    p.x = 0;
    p.y = 60;
   CriaCirculo(20, p); //(raio, ponto central)
    Pintar(0, 0, 0);

    p.y = 10;
    CriaElipse(10, 40, p); //(metade do maior raio da elipse, metade do menor raio da elipse, ponto central)
    Pintar(0, 0, 0);

    p.x = -40;
    p.y = 30;
    CriaRetangulo(80, 10, p); //(base, altura, ponto esquerdo inferior)
    Pintar(0, 0, 0);

    p.x = -40;
    p.y = -30;
    CriaTriangulo(80, 40, p); //(base, altura, ponto esquerdo inferior)
    Pintar(0, 0, 0);

    p.x = -15;
    p.y = -40;
    CriaQuadrado(10, p); //(lado, ponto esquerdo inferior)
    Pintar(0, 0, 0);

    p.x = 5;
    p.y = -40;
    CriaQuadrado(10, p);
    Pintar(0, 0, 0);

    Desenha();
}
int main(){
    int R[100][100], G[100][100], B[100][100];
    int Raux[102][102], Gaux[102][102], Baux[102][102];
    int Rf[102][102], Gf[102][102], Bf[102][102];
    int soma;
    int mfiltro = 8;
    Ponto p;

    //inicializa matrizes
    for(int i = 0; i < 102; i++){
        for(int j = 0; j < 102; j++){
            Raux[i][j] = 0;
            Gaux[i][j] = 0;
            Baux[i][j] = 0;

            Rf[i][j] = 0;
            Gf[i][j] = 0;
            Bf[i][j] = 0;
        }
    }

    ExtraiRGBdeBMP("Mario.bmp", 100, 100, R, G, B); @{ \label{line:ExtraiRGBdeBMP}@

    AbreJanela(300, 300, "Marios");
    //PintarFundo(255, 255, 255);

    //Passa as cores para aux
    for(int i = 1; i < 101; i++){
        for(int j = 1; j < 101; j++){
            Raux[i][j] = R[i - 1][j - 1];
            Gaux[i][j] = G[i - 1][j - 1];
            Baux[i][j] = B[i - 1][j - 1];
        }
    }

    //Realiza filtragem
    for(int i = 1; i < 101; i++){
        for(int j = 1; j < 101; j++){
            soma = 0;
            soma +=     Raux[i-1][j-1] + Raux[i-1][j] + Raux[i-1][j+1]
                    +   Raux[i][j-1] + Raux[i][j] + Raux[i][j+1]
                    +   Raux[i+1][j-1] + Raux[i+1][j] + Raux[i+1][j+1];
            Rf[i][j] = soma/mfiltro;

            soma = 0;
            soma +=     Gaux[i-1][j-1] + Gaux[i-1][j] + Gaux[i-1][j+1]
                    +   Gaux[i][j-1] + Gaux[i][j] + Gaux[i][j+1]
                    +   Gaux[i+1][j-1] + Gaux[i+1][j] + Gaux[i+1][j+1];
            Gf[i][j] = soma/mfiltro;

            soma = 0;
            soma +=     Baux[i-1][j-1] + Baux[i-1][j] + Baux[i-1][j+1]
                    +   Baux[i][j-1] + Baux[i][j] + Baux[i][j+1]
                    +   Baux[i+1][j-1] + Baux[i+1][j] + Baux[i+1][j+1];
            Bf[i][j] = soma/mfiltro;

        }
    }

    p.y = -50;
    for(int i = 1; i < 101; i++){
        p.x = -100;
        for(int j = 1; j < 101; j++){
            CriaQuadrado(1, p);
            Pintar(Raux[i][j], Gaux[i][j], Baux[i][j]);

            p.x++;
        }
        p.y++;
    }

    p.y = -50;
    for(int i = 1; i < 101; i++){
        p.x = 0;
        for(int j = 1; j < 101; j++){
            CriaQuadrado(1, p);
            Pintar(Rf[i][j], Gf[i][j], Bf[i][j]);

            p.x++;
        }
        p.y++;
    }

    Desenha();
}
float setaAngulo(Ponto partida){
    Ponto p, p2;
    float theta = 0;
    int grupo_lancar;

    printf("\nPressione a tecla setinha pra cima ou setinha pra baixo para mudar o angulo\n");

    grupo_lancar = CriaGrupo(); //Setinha que ira se mover. Salvei seu indice pois pretendo exclui-la depois
    p.x = 0;
    p.y = 0;
    p2.x = 60;
    p2.y = 0;
    CriaReta(p , p2); //Cria-lo na origem para nao dar problema com as coordenadas
    //Materia de algebra linear

    Pintar(0, 0, 255);
    Grafite(10);
    p = partida;

    Move(p); //Move-lo para o lugar certo
    do{
        Desenha1Frame();

        if(ApertouTecla(GLFW_KEY_UP)){
            theta++;
            printf("\nAngulo: %f", theta);
            Gira(theta);
        }
        else if(ApertouTecla(GLFW_KEY_DOWN)){
            theta--;
            printf("\nAngulo: %f", theta);
            Gira(theta);
        }

    }while(!ApertouTecla(GLFW_KEY_ENTER));
    @{ \label{line:ApagaGrupo}@ApagaGrupo(grupo_lancar); //Apaga setinha do angulo

    return theta;
}

float setaVelocidade(){
    int grupo_lancar;
    float v0;
    Ponto p;

    printf("\nPressione a tecla setinha pra cima ou setinha pra baixo para mudar a velocidade inicial\n");

    grupo_lancar = CriaGrupo();
    p.x = 70;
    p.y = 0; //Y como 0 para nao confundir as coordenadas
    //Materia de algebra linear

    CriaRetangulo(30, 1, p); //Altura como 1 para poder redimensiona-lo depois
    Pintar(0, 255, 0);
    p.x = 70;
    p.y = -100;
    Move(p); //Move-lo para o lugar certo

    do{
        Desenha1Frame();

        if(ApertouTecla(GLFW_KEY_UP)){
            v0 += 10;
            Redimensiona(1, v0); @{ \label{line:Redimensiona}@
            printf("\nVelocidade: %f", v0);
        }
        else if(ApertouTecla(GLFW_KEY_DOWN)){
            v0 -= 10;
            Redimensiona(1, v0);
            printf("\nVelocidade: %f", v0);
        }

    }while(!ApertouTecla(GLFW_KEY_ENTER));
    ApagaGrupo(grupo_lancar); //Apaga retangulo de velocidade

    return v0;
}
int main(){
    Ponto p, alvo, partida;
    float theta, v0, t;
    int colisao = 1, resposta;
    int imgmagneto_attack, imgmagneto_standing, imgmagneto_standing2,
        imgwolverine_flying, imgwolverine_standing, imgwolverine_standing2,
        imgbackground, imgpikachu;
    int grupo_wolverine, grupo_lancar;

    AbreJanela(600,600, "Lancaverine 2.0");

    imgmagneto_attack = AbreImagem("Xmen/magneto_attack.png");
    imgmagneto_standing = AbreImagem("Xmen/magneto_standing.png");
    imgmagneto_standing2 = AbreImagem("Xmen/magneto_standing2.png");
    imgwolverine_flying = AbreImagem("Xmen/wolverine_flying.png");
    imgwolverine_standing = AbreImagem("Xmen/wolverine_standing.png");
    imgwolverine_standing2 = AbreImagem("Xmen/wolverine_standing2.png");
    imgbackground = AbreImagem("Xmen/background.jpg");
    imgpikachu = AbreImagem("Xmen/pikachu.png");

    srand(time(NULL));
    do{


        LimpaDesenho(); //Limpo o desenho para comecar uma nova fase
        defineCenario(&alvo, &partida, &grupo_wolverine, imgbackground, imgmagneto_standing, imgwolverine_standing, colisao);

        Desenha1Frame();

        theta = setaAngulo(partida);
        v0 = setaVelocidade();

        ApagaGrupo(grupo_wolverine); //vamos resetar o wolverine para ataque

        grupo_wolverine = CriaGrupo(); //Separa os grupos - este e o grupo da bolinha
            CriaQuadrado(TAMANHOQUADRADO, partida);
            Pintar(255, 255, 255);
            AssociaImagem(imgwolverine_flying);

        t = 0;
        theta = theta * PI/180;
        colisao = 0;
        do{
            if(!colisao){
                p.x = partida.x + v0 * cos(theta) * t;
                p.y = partida.y + v0 * sin(theta) * t - ((1/2.0) * (9.8) * (t*t));
                Move(p, grupo_wolverine);
                t += 0.1; //tempo
            }

            colisao = colisaoBolinhaRetangulo(TAMANHOQUADRADO, TAMANHOQUADRADO, alvo, p);

            Desenha1Frame();
        }while(!colisao);

        if(colisao == 1){ //atingiu Magneto
            ApagaGrupo(grupo_wolverine); //remove Wolverine
            AssociaImagem(imgmagneto_attack); //Modifica Magneto

            grupo_wolverine = CriaGrupo(); //Separa os grupos - este e o grupo da bolinha
            CriaQuadrado(TAMANHOQUADRADO, p);
            Pintar(255, 255, 255);
            AssociaImagem(imgwolverine_flying);

            t = 0;
            do{ //pausa dramatica
                Desenha1Frame();
                t += 0.1;
            }while(t < 10);

            do{ //lanca wolverine
                Move(p, grupo_wolverine);
                p.x -= 10;
                p.y += 10;

                Desenha1Frame();
            }while(p.x + TAMANHOQUADRADO > -130);
            ApagaGrupo(grupo_wolverine);

            AssociaImagem(imgmagneto_standing);

            CriaGrupo();
                p.x = -80;
                p.y = 32;
                CriaQuadrado(20, p);
                Pintar(255, 255, 255);
                AssociaImagem(imgpikachu);

            Desenha1Frame();
        }

        if(colisao == 2){//Nao atingiu magneto
            if(p.x > alvo.x){ //Wolverine esta na frente do Magneto
                AssociaImagem(imgwolverine_standing2);
            }
            else{ //Wolverine esta nas costas do Magneto
                ApagaGrupo(grupo_wolverine);

                AssociaImagem(imgmagneto_standing2);
                grupo_wolverine = CriaGrupo(); //Separa os grupos - este e o grupo da bolinha
                    CriaQuadrado(TAMANHOQUADRADO, p);
                    Pintar(255, 255, 255);
                    AssociaImagem(imgwolverine_standing);
            }

            t = 0;
            do{ //pausa dramatica
                Desenha1Frame();
                t += 0.1;
            }while(t < 10);
        }

        if(colisao == 1){
            printf("\nYay! Quer jogar um novo jogo?");
        }
        else{
            printf("\nOh nao... Quer tentar de novo?");
        }
        printf("\n1 - Sim\n0 - Nao\n");
        scanf("%d", &resposta);

    }while(resposta);

    Desenha();

    return 0;
}
Exemple #11
0
int main (int argc, char * argv[]) {

  AbreJanela (960,960, "Galaxia Espiral de 2 brancos");

  /*
    Espiral Hiperbólica: equação em coordenadas cartesianas
       x = a*cos(t)/t
       y = a*sin(t)/t

       a é a assintota para y (reta paralela ao eixo x)
       t equivalente ao angulo em coordenadas polares
   */
  Ponto p, q, r;

  //  for (double t = 0; t < 4*PI; t += .01){

    /* espiral hiperbolica, caminhando do "fim" pro centro (0,0)
    p.x = 100*cos(t)/t;
    p.y = 100*sin(t)/t;
    */
    int k = 0;
  for (double t = 4*PI; t > 0 ; t -= .05) {
    p.x = 100*cos(t)/t;         q.x = -p.x;
    p.y = 100*sin(t)/t;         q.y = -p.y;

    printf("p.x: %f\t p.y: %f\n", p.x, p.y);
    printf("q.x: %f\t q.y: %f\n", q.x, q.y);

    CriaPonto (p);
    Pintar (200, 30, 100);
    Grafite(3);

    CriaPonto (q);
    Pintar (100, 30, 200);
    Grafite(3);

    Desenha1Frame();
    k++;
  }


  //A massive Black Hole in the very centre
  //If you want to see (the unseeable) black hole
  //paint the background on a different colour
  r.x =0;     r.y = 0;
  CriaCirculo(8, r);
  Pintar (0, 0,  0);

  for (double t=0;  ; t += .5) {
    Gira(t);
    Desenha1Frame();

    //Depois de um tempinho, pinta o fundo de branco pra mostrar
    //o buraco negro
    if ( t > 200 ) PintarFundo (255, 255, 255);

    //quebra o loop e encerra o programa
    if(ApertouTecla(GLFW_KEY_ENTER)) return 0;
  }

}
Exemple #12
0
int main(){
    Ponto p, pcano1, pcano2, pmario;
    int imgbackground, imgcano,
        imgmario_caminhando_1, imgmario_caminhando_2, imgmario_caminhando_3, imgmario_pre_caminhada, imgmario_pre_salto, imgmario_salto;
    int grupocano, grupomario, grupoback;
    float t, x, y;
    int raio_pulo = 40;

    srand (time(NULL));
    AbreJanela(600, 385, "Run, Mario, run!");

    imgbackground = AbreImagem("Mario_Run/background.png");
    imgcano = AbreImagem("Mario_Run/cano.png");
    imgmario_caminhando_1 = AbreImagem("Mario_Run/mario_caminhando_1.png");
    imgmario_caminhando_2 = AbreImagem("Mario_Run/mario_caminhando_2.png");
    imgmario_caminhando_3 = AbreImagem("Mario_Run/mario_caminhando_3.png");
    imgmario_pre_caminhada = AbreImagem("Mario_Run/mario_pre_caminhada.png");
    imgmario_pre_salto = AbreImagem("Mario_Run/mario_pre_salto.png");
    imgmario_salto = AbreImagem("Mario_Run/mario_salto.png");

    //Background
    grupoback = CriaGrupo();
        p.x = -156;
        p.y = -100;
        CriaRetangulo(312, 200, p);
        Pintar(255, 255, 255);
        AssociaImagem(imgbackground);

    //Canos
    grupocano = CriaGrupo();
        pcano1.x = -(100 - rand()%50);
        pcano1.y = -70;
        CriaQuadrado(30, pcano1);
        Pintar(255, 255, 255);
        AssociaImagem(imgcano);

        pcano2.x = 50 + rand()%50;
        pcano2.y = -70;
        CriaQuadrado(30, pcano2);
        Pintar(255, 255, 255);
        AssociaImagem(imgcano);

        grupomario = CriaGrupo();
            p.x = -156;
            p.y = -75;
            CriaRetangulo(30, 55, p);
            Pintar(255, 255, 255);
            AssociaImagem(imgmario_pre_caminhada);


        t = 0;
        while(t < 100){
            t++;
            Desenha1Frame();
        }

        for(p.x = -156; p.x < 125; p.x += 5){

            if(p.x + raio_pulo > pcano1.x && p.x < pcano1.x + raio_pulo){
                AssociaImagem(imgmario_pre_salto);
                t = 0;
                while(t < 50){
                    t++;
                    Desenha1Frame();
                }

                AssociaImagem(imgmario_salto);
                t = 0;
                pmario = p;
                while(t <= PI){
                    x = -(raio_pulo * cos(t)); //círculo (0,0) com raio 30 (x está invertido porque tá indo de 0 a PI)
                    y = 50 * sin(t);

                    p.x = pmario.x + raio_pulo + x; //posição do deslocamento x + raio 30 + posição inicial do Mário
                    p.y = pmario.y + y;

                    Move(p, grupomario);
                    Desenha1Frame();
                    Desenha1Frame();
                    Desenha1Frame();

                    t+= 0.5;
                }
                p.y = -75;
            }

            if(p.x + raio_pulo > pcano2.x && p.x < pcano2.x + raio_pulo){
                AssociaImagem(imgmario_pre_salto);
                t = 0;
                while(t < 50){
                    t++;
                    Desenha1Frame();
                }

                AssociaImagem(imgmario_salto);
                t = 0;
                pmario = p;
                while(t <= PI){
                    x = -(raio_pulo * cos(t)); //círculo (0,0) com raio 30 (x está invertido porque tá indo de 0 a PI)
                    y = 50 * sin(t);

                    p.x = pmario.x + raio_pulo + x; //posição do deslocamento x + raio 30 + posição inicial do Mário
                    p.y = pmario.y + y;

                    Move(p, grupomario);
                    Desenha1Frame();
                    Desenha1Frame();
                    Desenha1Frame();

                    t+= 0.5;
                }
                p.y = -75;
            }

            AssociaImagem(imgmario_caminhando_1);
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();

            Move(p, grupomario);

            AssociaImagem(imgmario_caminhando_2);
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();

            p.x += 5;

            Move(p, grupomario);

            AssociaImagem(imgmario_caminhando_3);
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();
            Desenha1Frame();

        }

    AssociaImagem(imgmario_pre_caminhada);
    Desenha();
    return 0;
}
Exemple #13
0
int main (){
    int angulo = 1;
    int helices, moinho;
    Ponto p1, p2;

    AbreJanela(400, 400, "Moinho de Vento" );
    PintarFundo(217,255,255);

    moinho = CriaGrupo();

        p1.x = -20;
        p1.y = -20;
        CriaTriangulo(40,60,p1);
        Pintar(255, 255, 0);

        p1.x = -20;
        p1.y = -100;
        CriaRetangulo(40,80,p1);
        Pintar(0, 255, 0);

    helices = CriaGrupo();

        p1.x = 0;
        p1.y = 0;
        // Hélice 1
        p2.x = 0;
        p2.y = 70;
        CriaReta(p1, p2);
        Pintar(255, 255, 255);
        Grafite(8);

        // Hélice 2
        p2.x = 70;
        p2.y = 0;
        CriaReta(p1, p2);
        Pintar(255, 255, 255);
        Grafite(8);

        // Helice 3
        p2.x = 0;
        p2.y = -70;
        CriaReta(p1, p2);
        Pintar(255, 255, 255);
        Grafite(8);

        // Helice 4
        p1.x = -70;
        p2.y = 0;
        CriaReta(p1, p2);
        Pintar(255, 255, 255);
        Grafite(8);

        p1.x = 0;
        p1.y = 0;
        CriaCirculo(5,p1);
        Pintar(255,200,0);

    while( angulo > 0){
        Desenha1Frame();
        Gira(angulo, helices); @\label{line:Giram1}@
        angulo++;
    }

    Desenha();
    return 0;
}
void Arcoiris()
{

     Pintar(color);
}