Na aula do dia 22/10/2015, foi pedido em sala de aula que fosse produzido um código no Processing que demonstrasse um lançamento balístico como se fosse um lançamento oblíquo.
Um lançamento oblíquo envolve dois tipos de movimento: um movimento retilíneo uniforme (MRU) e um movimento retilíneo uniformemente variado(MRUV), sendo o MRU tem um direcionamento horizontal e o MRUV vertical, causado pela aceleração da gravidade.
Na atividade de hoje, foi pedido que o recálculo do lançamento balístico a cada 0,1 segundo, porém mantendo o tempo real.
Para isto, bastou apenas deixar o Frame Rate no valor de 10(sendo assim a imagem atualizada numa taxa de 10 frames por segundo) e que ao incremento do tempo fosse somado um valor que fosse nesta mesma proporção, como pode ser demonstrado no código abaixo:
void setup(){
frameRate(10);
size(600,600);
}
float tAtual =0;
float aAtual = -10;
int vAtual = 40;
float dEixoX;
float dEixoY;
float soma = float(1)/float(10);
void draw(){
background(255);
mostraGrade();
mostraGradeH();
dEixoX = MRU(float(vAtual), tAtual);
dEixoY = MRUV(vAtual, tAtual, aAtual);
ellipse(dEixoX, 600-dEixoY, 10, 10);
println(tAtual, aAtual, dEixoY, dEixoX);
tAtual = tAtual + soma;
}
float MRUV(float v, float t, float a){
float d;
d = v * t + (a*t*t)/2;
return(d);
}
float MRU(float v, float t){
float d;
d = v * t;
return(d);
}
void mostraGrade(){
for (int i=0; i<12; i++){
line(i*50, 0, i*50, 600);
}
}
void mostraGradeH(){
for(int i=0; i<12; i++){
line(0, i*50, 600, i*50);
}
}
Nenhum comentário:
Postar um comentário