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); }
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(); }
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", ¢ro.x); printf("\nDigite a posicao y do centro da circunferencia: "); scanf("%f", ¢ro.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; }
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); ////////////////// }
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; }
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; } }
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; }
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); }