그래서 안드로이드에서 첫 번째 게임을 만들려고합니다. 것은 내가 작은 움직이는 공을 가지고 있고 나는 그것이 그린 선에서 튀어 나오길 원한다. 그 때문에 공의 x, y도 라인의 한 점의 좌표인지 찾아야합니다. 2D 공간에서 도트와 선의 충돌
는 I 라인X = A1 + t의 *의 U1
Y = A2 + t의 *를 U2 => (X-A1)/U1 = (Y-A2)
/약 이들 방정식을 구현하기 위해 노력 u2 (점이 줄에 있어야하는 경우 t = t 임)여기서 x와 y는 im 좌표를 나타내는 좌표이고, dot [a1, a2]는 줄에있는 점이며 u (u1 , u2)는 선의 벡터입니다.
을 heres 번호 :
public boolean Collided()
{
float u1 =Math.abs(Math.round(begin_X)-Math.round(end_X));
float u2 =Math.abs(Math.round(begin_Y)-Math.round(end_Y));
float t_x =Math.round((elect_X - begin_X)/u1);
float t_y =Math.round((elect_Y - begin_Y)/u2);
if(t_x==t_y)
{
return true;
}
else
{
return false;
}
}
점 [begin_X, end_X] 및 [begin_Y, end_Y 상기 라인 [elect_X, elect_Y]에서 두 지점 공
의 좌표이다 이론적으로는 작동해야하지만 현실에서는 대부분의 시간 동안 공이 라인을 통과하거나 다른 곳으로 튀어 오르게됩니다.
[begin_x, begin_y] : [end_x, end_y] 및 [elect_x, elect_y] : [previous_elect_x, previous_elect_y]의 두 선분 충돌 검사는 어떻습니까? –
체크 -> http://stackoverflow.com/questions/1073336/circleline-collision-detection – japrescott
이 질문의 제목을 읽을 때 나는 즉시 http://en.wikipedia.org/wiki/The_Dot_and_the_Line을 생각했다. . – cobaltduck