- código:
Primeiramente desenvolvemos o MRU (movimenro retilineo uniforme), depois fizemos o MRUV (movimento retilineo uniformemente variado), então, com a união dos dois criamos o
lançamento balístico.
primeiro foram definidas as variáveis utilizadas
float t=0; = tempo
float a=-2;= aceleração
float vY = 30; = velocidade no eixo y
float vX = 20; = velocidade no eixo x
float dX;= deslocamento no eixo x
float dY;= deslocamento no eixo y
float h; = altura
float cont;= contador
é utilizado uma variável em cada eixo devido ao lançamento balístico ser a soma dos dois movimentos (Vertical e horizontal). A aceleração e o tempo permanecem para os dois eixos.
no setup foram definidos o framerate, o tamanho da tela, e a altura utilizada para a criação dos retangulos.
void setup(){ frameRate(60); size(600,600); h = 400; }no draw, foram definidos a cor do background, a função de criação de grades, a cor das letras que aparecem na tela, textos mostrando os valores das variáveis de tempo, velocidade,
e distância, funcões de criação de retângulos, função de lançamento da bola (lançamento balístico) e a atribuição de tempo.
void draw(){ background(80); criandoGrades(); fill(255); text("Tempo: " + t + "s", 20, 20); text("Velocidade: " + (vX + a*t), 20, 40); text("Distância X: " + dX, 20, 60); text("Distância Y: " + dY, 20, 80); retangulo1(); retangulo2(); retangulo3(); lancaBola(); t = t + 0.0166666666666667; }
a função criandoGrades() é a responsável por desenhar as grades no background, dentro dela eu defino a quantidade de linhas, a cor e a localização (criando linhas na vertical e horizontal).
void criandoGrades(){ for(int i=0; i<(width/50); i++){ stroke(255, 255, 255); line(i * 50, 0, i * 50, width); line(0, i * 50, height, i * 50); } }
a função lacaBola() é o lançamento balístico, ela que vai definir a trajetória feita pela bala, nela foi colocado uma condição para que a bola faça seu percurso, porém quando ela sair dos limites
da tela ela para de se mover. E a junção dos dois movimentos MRU + MRUV para fazer o trajeto de parabóla (também é definida a cor e o formato de elipse).
void lancaBola(){ if(dX<width && dY>=0 && dY<height){ dX = vX*t; dY = vY*t+a*t*t*0.5; fill(255,0,255); ellipse(dX,height-dY,20,20); } }
as funções retangulo1/2/3() são o que eu utilizei para a criação do "jogo" proposto na atividade... o objetivo é que durante o lançamento da bala, a cor dos retangulos mude quando a bala
entrar em contato com eles
void retangulo1(){ cont = h - dY; if((dX>=290 && dX<=300) && (cont<=420)) { fill(0, 255, 255); }else { fill(255, 255, 0); } rect(290,365,20,20); } void retangulo2(){ if((dX>=200 && dX<=220) && (cont<=430)) { fill(0, 255, 255); }else { fill(255, 255, 0); } rect(200,380,20,20); } void retangulo3(){ if((dX>=380 && dX<=400) && (cont<=430)) { fill(0, 255, 255); }else { fill(255, 255, 0); } rect(380,380,20,20); }


Nenhum comentário:
Postar um comentário