Finalnie ma być to program liczący i ilustrujący rzut ukośny jaki zapewne z fizyki pamiętacie. Na razie program składa się z 3 klas. GUI odpowiadające za wygląd programu, RzutUkosny będący główną klasą oraz Rzut gdzie znajduje się zmienne i metody obliczeń zmiennych.
Problem polega aktualnie na tym, że chciałem narysować osie układu jako początek rzutu i niestety nie wiem gdzie błąd jest ponieważ kompilator nie znajduje ale nic się nie rysuje.
Za rysowanie osi odpowiada funkcja rysujWykres()
a cały kod:
RzutUkosny
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package rzutukosny;
import java.awt.*;
/**
*
* @author Michal
*/
public class RzutUkosny {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
GUI g = new GUI();
g.setVisible(true);
Rzut rzut = new Rzut();
rzut.setV0x(10);
rzut.setT(5);
rzut.odlegloscX1();
System.out.println(rzut.getX());
rzut.rysujWykres();
int o;
int m = o =6 ;
System.out.println(o+","+ m);
}
}
Rzut:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package rzutukosny;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
/**
*
* @author Michal
*/
class Rzut {
// //dodac prawdziwy konstruktor
private double V0;
private double V0x;
private double V0y;
private double x1; // o
private double y1;
private double t;
private final double GN = 9.80665;
private double Hmax;
//zmienne inne
public void rysujWykres() {
GUI p = new GUI();
p.setRysuj((java.awt.Graphics) p.getjPanel1().getGraphics());
// rysuj = (java.awt.Graphics) jPanel1.getGraphics();
Color kolor = java.awt.Color.red; //wybór koloru
// rysuj.setColor(kolor); //wstawienie koloru
p.getRysuj().setColor(kolor);
p.getRysuj().drawLine(20, 20, 100, 100);
p.getRysuj().drawOval(50, 50, 30, 30);
}
public double odlegloscX1(){
x1= V0x * t;
return x1;
}
public double odlegloscY1(double V0yy, double tt){
y1= V0y*t-((GN*Math.pow(t, 2))/2);
return y1;
}
public double odlegloscY1(double V0y, double x1, double V0x){
y1= V0y*(x1/V0x)-((GN*Math.pow(x1/V0x, 2))/2);
return y1;
}
public double getX() {
return x1;
}
public void setX(double x1) {
this.x1 = x1;
}
public double getV0() {
return V0;
}
public void setV0(double V0) {
this.V0 = V0;
}
public double getV0x() {
return V0x;
}
public void setV0x(double V0x) {
this.V0x = V0x;
}
public double getV0y() {
return V0y;
}
public void setV0y(double V0y) {
this.V0y = V0y;
}
public double getT() {
return t;
}
public void setT(double t) {
this.t = t;
}
public double getHmax() {
return Hmax;
}
public void setHmax(double Hmax) {
this.Hmax = Hmax;
}
public double getX1() {
return x1;
}
public void setX1(double x1) {
this.x1 = x1;
}
public double getY1() {
return y1;
}
public void setY1(double y1) {
this.y1 = y1;
}
public void rzut(){
V0=0;
V0x=0;
V0y = 0;
t =0;
x1=0;
y1=0;
Hmax=0;
}
}
klasa GUI jest głównie tworzona przez edytor Netbeansa więc żeby nie śmiecić tylko jej fragment:
private java.awt.Graphics rysuj;
public Graphics getRysuj() {
return rysuj;
}
public void setRysuj(Graphics rysuj) {
this.rysuj = rysuj;
}
public JPanel getjPanel1() {
return jPanel1;
}
public void setjPanel1(JPanel jPanel1) {
this.jPanel1 = jPanel1;
}