[자바질문]도와주세요.조금만 해결하면 될것같은데...소스좀 봐주세요.
눈내리던날
제가 혼자 자바 공부를 하고 있는데 물체 운동 포물선 그리기를 해봤어요. 밑에 보이시는건 실행결과고요. 이 실행결과가 나오도록
제가 소스를 짜봤어요.
C:\Tempjavac test.javaC:\Tempjava test
v0 =
30
theta =
30
xmaxdist = 79.76093968854624
maxy = 11.479589999999995
maxx = 39.750566033705766
maxt = 1.5300000000000011힌트 1. import java.util.Scanner; 를 이용하여 v0와 theta를 갖도록 한다. 2.
x= v0 * cos(theta)*t
y= v0 * sin(theta)*t-1/2 g t^2
g=9.8 로 한다.
각기 입력값으로 넣은 값에 대한 결과로
제일 높이 올라갔을때의 x,y,t 를 출력하고
y=0 로 왔을때의 t를 출력 할수 있도록 한다.
끝-이건 실행결과구요.
다음은 저 실행결과가 나오도록 제가 만들어본 소스입니다.
import java.util.Scanner;
public class test
{
public static void main( String args[] )
{
double v0=20;
double t=0.0;
double theta=20;
double G = 9.8;
double maxx=0,maxy=0,maxt=0;
double dx1=0.0,dy1=0.0;
Scanner input = new Scanner(System.in);
System.out.println(v0 = );
v0 = input.nextFloat();
System.out.println(theta = );
theta = input.nextFloat();
while(true)
{
dy1 = (v0*Math.sin(theta*Math.PI/180.0)*t)-(0.5*G*Math.pow(t,2));
dx1 = (v0*Math.cos(theta*Math.PI/180.0)*t);
// System.out.println(dx =+dx1+ dy=+dy1);
if(dy1maxy)
{
maxy =dy1;
maxx =dx1;
maxt =t;
}
if(dy10)
{
System.out.println(xmaxdist = + dx1);
break;
}
t=t+0.01 ;
}
System.out.println(maxy = +maxy);
System.out.println(maxx = +maxx);
System.out.println(maxt = +maxt);
}
}
이건 제가 어떻게 운좋게 잘 해서 실행이 되는데요 .문제는...
위의 것을 응용해서 다른 걸 해보려고 해요. 이런 실행결과가 나오도록 하는 건데요...
입력값으로 VO와 Theta 값을 임으로 주고
포물선으로 날아가는 시뮬레이션을 만들어보기
x= v0 * cos(theta)*t
y= v0 * sin(theta)*t-1/2 g t^2
g=9.8 로 한다.
각기 입력값으로 넣은 값에 대한 결과로
제일 높이 올라갔을때의 x,y,t 를 출력하고
y=0 로 왔을때의 t를 출력 할수 있도록 한다.
이건 제가 혼자 위에 소스를 변경해서 저런 실행결과가 나오도록 지금 해보는 것입니다.
이걸 어떻게 변경하면 좋을까요?위의 결과가 나올 수 있도록 도와주세요.
import java.awt.Graphics;
import javax.swing.JPanel;
public class DrawPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int v0=10;
float g=9.8, t;
int i=35;
int x=(int)v0*cos35*t;
int y=(int)(v0*sin35*t-1/2*g*Math.pow(t,2)*2);
g.drawLine(0,height/2, width/4,0);
}
}