당신은 내가이 프로그램을 수있는 방법을 도와 줄 수 : 나는 임의의 거리를 가지고그리기 자바 (시뮬레이터)에
나는 JPanel에있는이 그래픽 영역으로, 나는 그림에서 선을 생성 할, 그리고 임의의 알파. 문제는 첫 번째 줄이이 jPanel에 있고 두 번째 줄이이 jPanel에서 빠져있는 경우입니다.
테스트는 다음과 같습니다 :
if(y1<0){
tmp_x=x1;
tmp_y=y1;
x1= (x1-(Math.abs(y1)*(x1-x))/(Math.abs(y-y1)));
y1=0;
g.drawLine(x, y, x1, y1);
System.out.println("(x,y);(x1,y1): ("+x+","+y+");"+"("+x1+","+y1+")");
x=x1;
y=jPanel1.getHeight();
x1=tmp_x;
y1=jPanel1.getHeight()-Math.abs(tmp_y);
}
if(y1>jPanel1.getHeight()){
tmp_x=x1;
tmp_y=y1;
x1=x1-(Math.abs(Math.abs(y1-y)-Math.abs(y1-jPanel1.getHeight())))*(x1-x)/(Math.abs(y1-y));
y1=jPanel1.getHeight();
g.drawLine(x, y, x1, y1);
System.out.println("(x,y);(x1,y1): ("+x+","+y+");"+"("+x1+","+y1+")");
x=x1;
y=0;
x1=tmp_x;
y1=tmp_y-jPanel1.getHeight();
}
if(x1<0){
tmp_x=x1;
tmp_y=y1;
y1= (y1-(Math.abs(x1)*(y1-y))/(Math.abs(x-x1)));
x1=0;
g.drawLine(x, y, x1, y1);
System.out.println("(x,y);(x1,y1): ("+x+","+y+");"+"("+x1+","+y1+")");
y=y1;
x=jPanel1.getWidth();
y1=tmp_y;
x1=jPanel1.getWidth()-Math.abs(tmp_x);
}
if(x1>jPanel1.getWidth()){
tmp_x=x1;
tmp_y=y1;
y1=y1-(Math.abs(Math.abs(x1-x)-Math.abs(x1-jPanel1.getWidth())))*(y1-y)/(Math.abs(x1-x));
x1=jPanel1.getWidth();
g.drawLine(x, y, x1, y1);
System.out.println("(x,y);(x1,y1): ("+x+","+y+");"+"("+x1+","+y1+")");
y=y1;
x=0;
y1=tmp_y;
x1=tmp_x-jPanel1.getWidth();
}
문제가 어디 나는 다른 부분에서,이 이미지는 내가 뭘 원하는지 설명은 푹 선을 그어야 할?
여기에 http://stackoverflow.com/help/mcve가 도움이 될 것입니다. – Marco13