Omet navegació

18.1 Catapulta que no quedarà res

1. Objectius

  • Construcció d'un trinquet medieval a escala.
  • Estudi de les lleis físiques que regeixen el llançament de projectils: Conservació de l'energia mecànica. Estudi del MRU i del MRUA.
  • Mesura de l'angle de llançament amb l'ajuda de càmeres i l'ús de programari lliure (Avidemux).
  • Mesura de l'abast de llançament depenent de la massa del projectil i de l'angle. 

2. Material i muntatge

catapulta (trinquet)

  • Llistons de fusta de mides variades.
  • Conjunt de projectils de massa coneguda.
  • Ordinador per executar el programa Trinquet.pde fet correr sobre Processing 3.

3. Fonamentació : Principis físics involucrats i la seua relació amb aplicacions tecnològiques

  • Es conserva l'energia mecànica en la catapulta.

  • Principi de superposició del tir parabòlic

Aquest és l'esquema del trinquet abans del llançament.

Trinquet inicialment

Aquest és l'esquema del trinquet després del llançament.

Posició final

Anem a veure la conservació de l'energia mecànica.

Energia mecànica

Anem a veure el principi de superposició del tir parabòlic. 

  • Donada la velocitat i l'angle inicial, pel principi de superposició el moviment global és equivalent a l'estudi simultani del moviment en cada eix:

MRUA a l'eix y:

v=vo+ay(t-to)= vo sin α -9,8 t

y=yo+v0y(t-t0)+0,5ay(t-t0)2=vo sin α t -4,9 t2

MRU a l'eix x:

vx=vx0 = v0 cos α

x= v0 cos α t

Puc calcular quan torna a caure «y= 0» i traure el «t». Amb aquesta «t» traure «x» assolit.

x=v0 cosα t

y=v0 sinα t -(1/2) g t2       però  si         y=0= (abast màxim) = V0 sinα t -(1/2) g t2 si faig operacions vo sin α t= (1/2) gt2 si aïlle t obtinc t= (2 v0 sinα)/g

i si substituisc aquest t en l'equació x obtinc x= v0 cosα (2 v0 sinα)/g =(2 Vo2 sinα cosα)/g =(vo2 sin(2α) )/g que és l'abast en l'eix X.


4. Funcionament i Resultats: observacions i mesures.

  • Cal comprovar l'angle de llançament filmant el llançament en una càmera i mirant els fotogrames del llançament amb Avidemux per mesurar l'angle superposant els fotogrames amb una imatge amb un goniòmetre dibuixat..
  • Cal determinar si la distancia assolida pel projectil llançat s'aproxima a la calculada de forma teòrica.

1) Fes una taula amb 10 llançaments per a cada massa que vages a llançar.

Llançament nombre Referència del vídeo Abast horitzontal en metres Angle tret amb avidemux
1
2
3
4
5
6
7
8
9
10

2 ) Trau l'angle del dos fotogrames on es veja el projectil partint. Trau la mitjana de l'angle amb aquest dos fotogrames. Mira l'exemple:

Angle Llançament video 20160519_093300144

3) Fes el llançament de tres projectils de masses diferents i esbrina després de mesurar els càlculs si la massa influeix en l'abast assolit a igualtat d'angle. ( Si no pots veure el vídeo amb el navegador  te'l pots baixar per veure'l a l'ordinador des d'ací (mp4 - 3.1 MB). )

4 ) Compara en cada llançament l'abast assolit real amb el calculat amb l'ajuda del programa Trinquet.pde una vegada obtés l'angle amb Avidemux.

Trajectoria Projectil i abast obtinguts amb Trinquet.pde

5. Millora del projecte.

  • Modifica el codi font del projecte per calcular quines mides hauria de tindre una catapulta real que hagués de llançar projectils de 30 Kg a una distancia de 150 metres tal com es feia a l'edat mitjana.
  • El codi font el tens a continuació amb cada línia comentada per explicar de forma didàctica la seua funció dins del programa i també el pots baixar d'ací TRINQUET.ZIP (zip - 5417833 B).) amb els fotogrames.
// Copyright (C) 2016 Carles Ferrando Garcia
// License: GNU GPL v3 ( http://www.gnu.org/licenses/gpl.html )
// En aquest programa hem fet aplicat la conservació de l'energia (cinètica, potencial i de rotació)  
// per traure la velocitat de llançament d'un projectil amb un trinquet, i calcular utilitzant les 
// equacions del MRU i MRUA la posició del projectil i presentar la trajectoria en pantalla.
// Les variables que donar al programa són la massa del projectil en grams i l'angle de dispar en graus


//Declació de variables globals
char bloc = 'A';
float numero1;// Nombre temporal per desar els caracters entrats al teclejar la massa quan els convertim a float
float numero2;// Nombre temporal per desar el caracters entrats al teclejar l'angle quan els convertim a float
String textTeclejat ;//definim on desarem el text
String caracter;// definim la variable caracter
//Anem a definir algunes imatges
PImage trinquetinicial;
PImage trinquetfinal;
PImage Emecanica;
PImage fotograma0;
PImage fotograma1;
PImage fotograma2;
PImage fotograma3;
PImage fotograma4;
PImage fotograma5;
PImage fotograma6;
PImage fotograma7;
PImage fotograma8;
PImage fotograma9;
PImage fotograma10;
PImage fotograma11;
PImage fotograma12;
PImage fotograma13;
PImage fotograma14;
PImage fotograma15;
float g=9.82; //Valor acceleració gravetat m/s²
float a=0.4; //Altura del projecte en metres
float c=0.62; //Distancia braç més llarg
float d=0.6; //Longitud fil doblat en metres
float M=4.275; //Massa del contrapes en Kg
float b=0.145; //Distancia del braç mçes curt en metres
float mu=0.5271; //Massa de la barra o pivot en Kg
float mbg; //Massa bala en grams
float mbk=0; //Massa bala en Kg
float termeA=0; //Definim una part de V²
float termeB=0; //Definim una part de V²
float termeC=0; //Definim una part de V²
float termeD=0; //Definim una part de V²
float termeE=0; //Definim una part de V²
float termeF=0; //Definim una part de V²
float num ; //numerador de V²
float den ; //denominador de V²
float Vquadrat ; //Velocitat d'eixida al quadrat del projectil
float V0 ; //Velocitat d'eixida del projectil
float tabast ; //Temps per l'abast màxim
float Xabast ; //Distancia X màxima assolida
float angleg; //Angle d'eixida del projectil en graus
float angler; //Angle d'eixida del projectil en radians
float temps=0; //Defimim els temps per fer calculs
float X=0 ; //Defimim X per fer calculs
float Y=0;  //Defimim Y per fer calculs
float [] tempsMatriu= new float[21]; //Matriu amb la llista de 20 valors de temps
float [] XMatriu=new float[21]; //Matriu amb la llista de 20 valors de X
float [] YMatriu=new float[21]; //Matriu amb la llista de 20 valors de Y
float interval; //Definim el interval per calcular l'increment de temps
float novaX; //variable de X amb l'origen de coordenades canviat de (0,0) a (0,400) aplicarem que novaX=80*X
float novaY; //Variable de Y amb l'origen de coordenades canviat de (0,0) a (0,400) aplicarem que novaY=400-40*Y
int contadorU=0;//Definim un contador per al bloc U

void setup(){
//Mida de la pantalla
size (800,800);
background(255,255,255) ;//Fons de pantalla
//velocitat en cicles per segon
frameRate(5);
textTeclejat = "" ;//inicialtzem la variable amb un blanc per traure-li el valor «null»
}

void draw(){
//bloc='D';//Pasem el control del programa al bloc D
switch(bloc) {
  
//Bloc A de programació «Demana massa projectil en grams»
case 'A': 
fill(0) ; //Omplim de blanc la pantalla
text("Escriu la massa del projectil en grams [100-300] (usa el punt decimal) i prem després ENTER.",20,30) ;
text("b = "+b+" metres",20,50) ;
text("a = "+a+" metres",20,70) ;
text("c = "+c+" metres",20,90) ;
text("d = "+d+" metres",20,110) ;
text("M = "+M+" kilograms",20,130) ;
text("mu = "+mu+" kilograms",20,150) ;
trinquetinicial = loadImage("Posicio-inicial.png");
// Mostra la imatge a la posicio (50,0) //adaptant-la a la mida 750 , 750
image(trinquetinicial, 150, 0, 650, 650);
if (key==ENTER){ //Si premem «ENTER» em acabat de posar el nostre la massa del projectil
background(255,255,255) ;//Redibuixa fons de pantalla blanc
caracter=textTeclejat;
numero1=float(trim(caracter)); //Converteix de string a float
mbg=numero1;
text("has entrat el valor", 20 , 30);//escric un missatge
text(caracter, 20, 40); //escric una variable
text("la massa de la bala en grams es", 20 , 50);//escric un missatge
text(mbg,20,60); //escric una variable
}//final primer if
if (mbg > 0){
  bloc='B';//Pasem el control del programa al bloc B
  textTeclejat = "" ;//Resetegem la variable per borrar el valor entrat en mbg
   key=BACKSPACE;  //Canvien el valor de key per poder llegir de nou 
}//final if canvi de bloc
    break;
    
//Bloc B de programació «Demana angle d'eixida»
case 'B': 
text("Escriu l'angle de dispar del projectil en graus (usa el punt decimal) i prem després ENTER.",20,80) ;
trinquetfinal = loadImage("Posicio-final.png");
// Mostra la imatge a la posicio (100,0) //adaptant-la a la mida 750 , 750
image(trinquetfinal, 100, 0, 700, 700);
if (key==ENTER){ //Si premem «ENTER» em acabat de posar el nostre el angle del projectil
background(255,255,255) ;// Redibuixa fons de pantalla blanc
caracter=textTeclejat;
numero2=float(trim(caracter)); //Converteix de string a float
angleg=numero2;
text("has entrat el valor",20 , 30);//escric un missatge
text(caracter,20,40); //escric una variable
text("L'angle de dispar en graus es",20 , 50);//escric un missatge
text(angleg,20,60); //escric una variable
}//final segon if
if (angleg > 0){
  bloc='C';//Pasem el control del programa al bloc C
  textTeclejat = "" ;//Resetegem la variable per borrar el valor entrat en angleg
  key=BACKSPACE;  //Canvien el valor de key per poder llegir de nou
}//final if canvi de bloc
    break;
  
//Bloc C de programació «Fa càlculs»
case 'C': 
mbk=mbg/1000; //Massa bala en Kg
angler=PI*angleg/180; //Angle de dispar en radians
termeA=M*g*(a+(b*a/c)); //Definim una part de V²
termeB=M*g*b*sin(angler); //Definim una part de V²
termeC=mbk*g*(c+d)*sin(angler); //Definim una part de V²
termeD=(M*b*b)/(2*(c+d)*(c+d)); //Definim una part de V²
termeE=mbk/2; //Definim una part de V²
termeF=(mu*b)/(6*(c+d)); //Definim una part de V²
num=termeA-termeB-termeC ; //numerador de V²
den=termeD+termeE+termeF ; //denominador de V²
Vquadrat=num/den ; //Velocitat d'eixida al quadrat del projectil
V0=sqrt(Vquadrat) ; //Velocitat d'eixida del projectil

tabast=(V0*sin(angler))/4.9; //Temps fins que el MRUA en la Y arribe al Terra
Xabast=(V0*V0/g)*sin(2*angler); //Distancia màxima a la qual arrriba el MRU en la X
interval=tabast/20; //Aquest serà l'increment de temps per fer la gràfica
//Anem a omplir tres matrius per fer una gràfica amb la trajectoria
//Omplim la matriu del temps
for (int i = 0; i<21; i++) {
  tempsMatriu[i]=temps; //Omplim la variable tempsMatriu amb el valor de temps que s'incrementa en cada cicle
  temps=temps+interval; //Incrementem el temps
}
//Omplim la Matriu de les X
for (int i = 0; i<21; i++) {
  temps=tempsMatriu[i]; //Pasem el valor de la matriu tempsMatriu a la variable temps per fer càlculs
  X=V0*cos(angler)*temps; //Calculem el valor de X(t)
  XMatriu[i]=X; //Guardem el valor de X a la matriu XMatriu[i]
}
//Omplim la Matriu de les Y
for (int i = 0; i<21; i++) {
  temps=tempsMatriu[i]; //Pasem el valor de la matriu tempsMatriu a la variable temps per fer càlculs
  Y=a+(V0*sin(angler)*temps)-(0.5*g*temps*temps); //Calculem el valor de Y(t)
  YMatriu[i]=Y; //Guardem el valor de Y a la matriu YMatriu[i]
}
println ("num= "+num);
println ("den= "+den);
println ("V0= "+V0);
println ("tabast= "+tabast);
println ("Xabast= "+Xabast);
//Mostrem la Matriu de temps
for (int i = 0; i < 21; i++) {
 println ("temp" +i+ "= "+tempsMatriu[i]);
}
//Mostrem la Matriu de X
for (int i = 0; i < 21; i++) {
 println ("X" +i+ "= "+XMatriu[i]);
}
//Mostrem la Matriu de Y
for (int i = 0; i < 21; i++) {
 println ("Y" +i+ "= "+YMatriu[i]);
}
if (YMatriu[20] > 0){
  bloc='D';//Pasem el control del programa al bloc C
  textTeclejat = "" ;//Resetegem la variable per borrar el valor entrat en angleg
  key=BACKSPACE;  //Canvien el valor de key per poder llegir de nou
}//final if canvi de bloc
  break;
  
//Bloc D de programació «Mostra Velocitat V i equacions de conservació energia»  
case 'D':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
Emecanica = loadImage("EnergiaMecanica.png");
image(Emecanica, 0, 0, 800, 800);
text("Ací tens com es conserva l'energia mecànica.",20,10);
text("A la seguent pantalla veurem fotogrames del llançament. En ACABAR de llegir prem la tecla ENTER ",20,750);
text(" = "+V0+" m/s",650,665);

if (key==ENTER){
  key=BACKSPACE; //Canvien el valor de KeyCode per poder llegir de nou
bloc='E';
}//final if
  break;
  
//Bloc E de programació «Mostra fotogrames del llançament» 
case 'E': 
background(255,255,255);// Redibuixa fons de pantalla blanc
fotograma0= loadImage("Fotogrames0000.jpg");
image(fotograma0, 0, 0, 800, 450);
text("Prem la tecla ENTER --> per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE; //Canvien el valor de KeyCode per poder llegir de nou
bloc='F';
  }//final if
  break;
  
//Bloc F de programació «Mostra fotogrames del llançament» 
case 'F':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma1 = loadImage("Fotogrames0001.jpg");
image(fotograma1, 0, 0, 800, 450);
text("Prem la tecla ENTER --> per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
   key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='G';
}//final  if
  break;

//Bloc G de programació «Mostra fotogrames del llançament» 
case 'G':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma2 = loadImage("Fotogrames0002.jpg");
image(fotograma2, 0, 0, 800, 450);
text("Prem la tecla ENTER --> per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='H';
 }//final  if
  break;
 
//Bloc H de programació «Mostra fotogrames del llançament» 
case 'H':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma3 = loadImage("Fotogrames0003.jpg");
image(fotograma3, 0, 0, 800, 450);
text("Prem la tecla ENTER --> per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='I';
}//final  if
  break;  

//Bloc I de programació «Mostra fotogrames del llançament» 
case 'I':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma4 = loadImage("Fotogrames0004.jpg");
image(fotograma4, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
   key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='J';
}//final  if
  break;  
  
//Bloc J de programació «Mostra fotogrames del llançament» 
case 'J':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma5 = loadImage("Fotogrames0005.jpg");
image(fotograma5, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
   key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='K';
}//final  if
  break;    

//Bloc K de programació «Mostra fotogrames del llançament» 
case 'K':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma6 = loadImage("Fotogrames0006.jpg");
image(fotograma6, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='L';
}//final  if
  break;  

//Bloc L de programació «Mostra fotogrames del llançament» 
case 'L':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma7 = loadImage("Fotogrames0007.jpg");
image(fotograma7, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='M';
}//final  if
  break;  

//Bloc M de programació «Mostra fotogrames del llançament» 
case 'M':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma8 = loadImage("Fotogrames0008.jpg");
image(fotograma8, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='N';
}//final  if
  break;   

//Bloc N de programació «Mostra fotogrames del llançament» 
case 'N':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma9 = loadImage("Fotogrames0009.jpg");
image(fotograma9, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='O';
}//final  if
  break;   
  
//Bloc O de programació «Mostra fotogrames del llançament» 
case 'O':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma10 = loadImage("Fotogrames0010.jpg");
image(fotograma10, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='P';
}//final  if
  break;

//Bloc P de programació «Mostra fotogrames del llançament» 
case 'P':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma11 = loadImage("Fotogrames0011.jpg");
image(fotograma11, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='Q';
}//final  if
  break;  
  
//Bloc Q de programació «Mostra fotogrames del llançament» 
case 'Q':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma12 = loadImage("Fotogrames0012.jpg");
image(fotograma12, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='R';
}//final  if
  break;  

//Bloc R de programació «Mostra fotogrames del llançament» 
case 'R':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma13 = loadImage("Fotogrames0013.jpg");
image(fotograma13, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='S';
}//final  if
  break;   

//Bloc S de programació «Mostra fotogrames del llançament» 
case 'S':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma14 = loadImage("Fotogrames0014.png");
image(fotograma14, 0, 0, 800, 450);
text("Prem la tecla ENTER per acabar anar al seguent fotograma",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='T';
}//final  if
  break;   

//Bloc T de programació «Mostra fotogrames del llançament» 
case 'T':
background(255,255,255) ;// Redibuixa fons de pantalla blanc
fotograma15 = loadImage("Fotogrames0015.png");
image(fotograma15, 0, 0, 800, 450);
text("Prem la tecla ENTER per VEURE la TRAJECTORIA",20,460);
if (key==ENTER){
  key=BACKSPACE;  //Canvien el valor de KeyCode per poder llegir de nou
bloc='U';
}//final  if
  break;   
  
//Bloc U de programació «Mostra trajectoria»
case 'U': 
background(255,255,255) ;// Redibuixa fons de pantalla blanc
strokeWeight(3);//Gruix 2 pixels
stroke(0,0,255);//Color ratlla blau
line(0,400,800,400);//Ratlla X base
line(400,390,400,410);//Ratlla de 5 m
text("5m",390,420);//Marca de 5 m
line(200,390,200,410);//Ratlla de 2,5 m
text("2.5m",190,420);//Marca de 2,5 m
line(600,390,600,410);//Ratlla de 7,5 m
text("7.5m",590,420);//Marca de 7,5 m
line(0,160,0,640);//Ratlla de Y base
text("6m",1,160);//Marca de 6 m vertical
text("-6m",1,640);//Marca de -6 m vertical
text("3m",1,280);//Marca de 3 m vertical
text("-3m",1,520);//Marca de -3 m vertical
//Marques MRUA i MRU
stroke(255,0,0);//Color ratlla roig
line(5,400,5,360); //Fletxa MRUA
line(0,365,5,360);//Fletxa MRUA
line(10,365,5,360);//Fletxa MRUA
text("MRUA",5,355); //Text MRUA
line(5,400,45,400);//Fletxa MRU
line(40,395,45,400);//Fletxa MRU
line(40,405,45,400);//Fletxa MRU
text("MRU",50,400); //Text MRU


stroke(0,0,255);//Color ratlla blau de nou 
for (int i = 0; i < 21; i++) {
  
 Y=YMatriu[i]; //Passem el valor de la matriuY a Y
 novaY=400-40*Y; //Convertim les coordenades amb origen (0,0) a coordenades amb origen (0,400) per a les Y
 X=XMatriu[i]; //Passem el valor de la matriuX a X
 novaX=80*X; //Convertim les coordenades amb origen (0,0) a coordenades amb origen (0,400) per a les X
  float r = random(221); //Posem un valor aleatori al color del projectil en cada instant
  fill(5, 2+r, 3+r);//color per omplir el cercle amb que farem el projectil
  ellipse( novaX, novaY, 20, 20);//Un cercle radi 20 situat de forma aleatòria
  contadorU=contadorU+1;
}
text("La trajectoria del projectil es la que veus dibuixada mes amunt.",20,440);
text("L'abast maxim del llançament es de "+Xabast+" m",20,460);
text("L'angle del llançament es de "+angleg+" º",20,480);
text("La massa del projectil es de "+mbk+" Kg",20,500);
text("La velocitat d'eixida del projectil es de "+V0+" m/s",20,520);
if (contadorU > 20){
  bloc='Y';//Pasem el control del programa al bloc G
  textTeclejat = "" ;//Resetegem la variable per borrar el valor entrat en angleg
  key=BACKSPACE;  //Canvien el valor de key per poder llegir de nou
 
}//final if canvi de bloc
  break;
  
//Bloc G de programació «Demana eixir»  
case 'Y': 
text("Prem la tecla ENTER per ATURAR el programa",50,540);
if (key==ENTER){
  exit();
}//final segon if
 break;
    
//Final dels blocs    
  default:
    println("Final dels blocs");   // Does not execute
    break;
} // final de switch
}//final de void Draw

void keyReleased()
{
char teclaSeguent = key ;//alcem la darrera tecla teclejada
textTeclejat+=teclaSeguent ;//concatenem lletres «textTeclejat=textTeclejat + teclaSeguent»
}

6. Conclusions.

  • Escriu les teues conclusions.
  • Has demostrat que la massa del projectil modifica l'abast ?
  • Has comprovat si l'abast calculat de forma teòrica es correspon amb la abast  en l'eix X mesurat ? 
  • Es poden explicar mitjançant les lleis físiques les discrepàncies ?