double deg = Math.atan2(moveX-spX,moveY-spY)*180/Math.PI-90;
int r=130; // 원반지름
if(deg < 0)deg+=360;
if(Math.pow(spX-moveX,2)+Math.pow(spY-moveY, 2)<=Math.pow(r,2)){
moveY = y;
moveX = x;
}else {
moveX = this.moveX ;
moveY = this.moveY ;
if(Math.pow(spX-x,2)+Math.pow(spY-y, 2)<=Math.pow(r,2)){
bMove = true;
moveY = y;
moveX = x;
}
}
원을 X2제곱 + Y2제곱 = r2제곱으로 원을 구하여 원 안에 영역에서는 좌표가 움직이게 하고 원의 영역을 벗어나면 좌표의 값이 고정 되어있는 구조 입니다 ,
저는 여기서 영역의 밖에서 움직였을때 그원 안의 영역에서 그쪽의 좌표로 가도록 구하고 싶은데 로직이 생각이 잘 안남니다.
여러가지 로직 이나 팁을 좀 주세요. 부탁드립니다.
P.S 아날로그 pad 처럼 오락 조이스틱을 구현하는 중이였습니다.