현재 a지점에 있는 그림을 b지점으로 옮기기 위해 사용한 좌표 이동 부분 코드입니다

1. max_x, max_y는 목표지점 좌표
2. x, y는 현재 좌표
3. defaultX, defaultY는 처음 움직임을 시작한 좌표(목적지까지의 거리를 구하기 위해)
4. moveDistanceX, moveDistanceY는 방향설정(1은 +, -1은 -)

삼각함수를 사용해서 목표지점까지의 각도를 구한 후 해당 각만큼 설정해서 이동하는 부분인데

돌리면 전혀 다른 방향으로 움직이네요.. 어떻게 설정값을 해야 할까요?


if (x >= mView.getWidth() - width - xSpeed || x + xSpeed <= 0) {
xSpeed = -xSpeed;
}
double dx = max_x - defaultX;
double dy = max_y - defaultY;
if(movingX.equals("move")) {
if (moveDistanceX > 0) {
if(max_x > 0 ) { // X좌표 +
if(max_x > x){
Log.e("1. max_x > x", "y != max_y / y " + y + " max_y " + max_y);
x = x + Math.cos(Math.toDegrees(Math.tan(dx/dy) * Math.PI/180)) * xSpeed;
} else {
movingX = "stop";
}
//Log.e("dx dy ", "dx : " + dx + " dy : " + dy + " / dy/dx : " + dy/dx);
//Log.e("1. max_x > x", "x : " + x + " / todegrees " + Math.toDegrees(Math.tan(dy/dx) * Math.PI/180));
}
} else {
if(max_x > 0) { // X좌표 -
if(max_x < x) {
Log.e("2. max_x < x", "y != max_y / y " + y + " max_y " + max_y);
x = x - Math.cos(Math.toDegrees(Math.tan(dx/dy) * Math.PI/180)) * xSpeed;
} else {
movingX = "stop";
}
//Log.e("dx dy ", "dx : " + dx + " dy : " + dy + " / dy/dx : " + dy/dx);
//Log.e("2. max_x < x", "x : " + x + " / todegrees " + Math.toDegrees(Math.tan(dy/dx) * Math.PI/180));
}
}
}
if(movingY.equals("move")) {
if (moveDistanceY > 0) {
if(max_y > 0 ) { // Y좌표 +
if(max_y > y){
Log.e("3. max_y > y", "x != max_x / x " + x + " max_x " + max_x);
y = y + Math.sin(Math.toDegrees(Math.tan(dx/dy) * Math.PI/180)) * ySpeed;
} else {
movingY = "stop";
}
//Log.e("dx dy ", "dx : " + dx + " dy : " + dy + " / dy/dx : " + dy/dx);
//Log.e("3. max_y > y", "y : " + y + " / todegrees " + Math.toDegrees(Math.tan(dy/dx) * Math.PI/180));
}
} else {
if(max_y > 0 ) { // Y좌표 -
if(max_y < y){
Log.e("4. max_y < y", "x != max_x / x " + x + " max_x " + max_x);
y = y - Math.sin(Math.toDegrees(Math.tan(dx/dy) * Math.PI/180)) * ySpeed;
} else {
movingY = "stop";
}
//Log.e("dx dy ", "dx : " + dx + " dy : " + dy + " / dy/dx : " + dy/dx);
//Log.e("4. max_y < y", "y : " + y + " / todegrees " + Math.toDegrees(Math.tan(dy/dx) * Math.PI/180));
}
}
}
if (y >= botton - height - ySpeed || y + ySpeed <= top) {
ySpeed = -ySpeed;
}