Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Serie di calcoli risultano zero O.o aiuto
Forum - Java - Serie di calcoli risultano zero O.o aiuto

Avatar
giosch (Normal User)
Rookie


Messaggi: 23
Iscritto: 16/03/2011

Segnala al moderatore
Postato alle 20:13
Giovedì, 29/11/2012
Da poco mi sono buttato in java :D
lasciate perdere la qualità del layout.
Il programma, data velocità e angolo di partenza dovrebbe calcolare 100 punti della traiettoria parabolica e memorizzarne x e y in dati[][]
calcolo il tempo totale, divido per cento, calcolo x e ok, ma la seconda parte delle y, quella da -1*(1/2*...
risulta 0 (ho aggiunto le istruzioni per stampare la matrice sulla schermata di netbeans, proprio per vedere che valori dava...)
ConvertFrame.java
Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package convertitore;
  6.  
  7. import java.awt.*;
  8. import java.awt.event.*;
  9. import java.math.*;
  10.  
  11. class ConvertFrame extends Frame implements ActionListener
  12. {
  13. private Panel  p1 = new Panel();
  14. private Panel  p2 = new Panel();
  15. private Panel  p3 = new Panel();
  16. private Panel  p4 = new Panel();
  17. private TextField  velocita = new TextField(15);
  18. private TextField  gradi = new TextField(15);  
  19. private TextField  ris = new TextField(15);
  20. private Button calcola = new Button("Calcola");
  21.  
  22.     public ConvertFrame()
  23.     {
  24.         super("Calcolo traiettoria proiettile");
  25.        
  26.         //addWindowListener(new GestoreFinestra());
  27.        
  28.         p1.add(new Label("Velocità"));
  29.         p1.add(velocita);
  30.         p2.add(new Label("Gradi"));
  31.         p2.add(gradi);
  32.         p4.add(ris);
  33.         p3.add(calcola);
  34.         setLayout(null);
  35.         Disegna disegno = new Disegna();
  36.         add(disegno);
  37.         add(p1);
  38.         add(p2);
  39.         add(p4);
  40.         add(p3);
  41.         disegno.setBounds(30, 40, 501, 501);
  42.         p1.setBounds(30, 540, 250, 70);
  43.         p2.setBounds(30, 610, 250, 70);
  44.         p4.setBounds(30, 680, 250, 70);
  45.         p3.setBounds(30, 750, 250, 50);
  46.         calcola.addActionListener(this);
  47.     }
  48.  
  49.     @Override
  50.     public void actionPerformed(ActionEvent e)
  51.     {
  52.         double vel;
  53.         double grad;
  54.         double rad;
  55.         vel = Double.valueOf(velocita.getText()).doubleValue();
  56.         grad = Double.valueOf(gradi.getText()).doubleValue();
  57.         rad = Math.toRadians(grad);
  58.         double dati[][] = new double[3][105];
  59.        
  60.         int i;
  61.         double t_tot;
  62.         t_tot = ((2*vel/9.81)*Math.sin(rad));
  63.        
  64.         double scatto;
  65.         double netto;
  66.         scatto = t_tot/100;      
  67.         for (i=1; i <= 100; i++)
  68.         {
  69.             netto= scatto*i;
  70.             dati[0][i]=i;
  71.             dati[1][i]=vel*Math.cos(rad)*netto;
  72.             dati[2][i]=((vel*Math.sin(rad)*netto)+-1*(1/2*9.81*netto*netto));
  73.            
  74.             System.out.println(dati[0][i]+" : "+netto+" : "+dati[1][i]+" : "+dati[2][i]);
  75.             System.out.println(vel+" : "+Math.sin(rad)+" : "+netto+" : "+-1*(1/2*9.81*netto*netto));
  76.         }
  77.        
  78.         ris.setText("Fatto!");
  79.        
  80.     }
  81.    
  82. }



Convertitore.java
Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package convertitore;
  6.  
  7. /**
  8.  *
  9.  * @author Giovanni
  10.  */
  11. public class Convertitore {
  12.  
  13.     /**
  14.      * @param args the command line arguments
  15.      */
  16.     public static void main(String[] args) {
  17.         ConvertFrame f = new ConvertFrame();
  18.        
  19.         f.pack();
  20.         f.setVisible(true);
  21.     }
  22. }



Disegna.java (da completare ovviamente, dovrebbe fare il grafico)
Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package convertitore;
  6.  
  7. import java.awt.*;
  8. public class Disegna extends Canvas
  9. {
  10.     public void paint(Graphics g)
  11.     {
  12.             g.drawLine(100, 100, 300, 400);
  13.             g.drawLine(0,0,0,500);
  14.             g.drawLine(0,500,500,500);
  15.             g.drawLine(500,500,500,0);
  16.             g.drawLine(500,0,0,0);
  17.     }
  18. }



Grazie delle risposte in anticipo :D

Ultima modifica effettuata da giosch il 29/11/2012 alle 20:14
PM Quote