2017-01-11 7 views
-2

나는 circle collision function에 원을 써 봤지만 약간 실수를 한 것 같아서 찾지 못한다.Circle to Circle 충돌 함수 Javascript

function testCollisionArc(arc1,arc2){ 
 
    return arc1.x + arc1.r + arc2.r > arc2.x 
 
    && arc1.x < arc2.x + arc1.r + arc2.r 
 
    && arc1.y + arc1.r + arc2.r > arc2.y 
 
    && arc1.y < arc2.y + arc1.r + arc2.r 
 
}

+0

어떤 문제가 있습니까? 그리고이 결과를 산출하는 예제를 추가 할 수 있습니까? – Joffutt4

+0

이 실수가 어디서 발생했는지, 또는 무엇이 잘못 되었습니까? –

+0

이 질문에 답할 수있는 사람은 상대적으로 분명해야합니다. 해당 코드가 원 테스트보다 박스 교차 테스트와 비슷해 보입니다. – Alnitak

답변

1

원 었소 가장자리 테두리 (0). 둘 사이의 거리를 알아야합니다.

var distance=Math.sqrt(Math.pow(arc1.x-arc2.x,2)+Math.pow(arc1.y-arc2.y,2));//the 'sentence of Pythagoras' as we say in German 
return arc1.r+arc2.r>distance; 
+0

'^ 2' isn 올바른 자바 스크립트가 아닙니다. (이 컨텍스트에서는 올바르지 않지만 올바르지 않습니다) – Alnitak

+1

이제 코드가 실제로 올바르지 않습니다. – Alnitak

+0

'**'을 사용하여 최신 브라우저에서만 전원을 높이십시오. (Chrome, Firefox) 또는 바벨을 사용하십시오. 따라서 2의 거듭 제곱은 '2 ** 4'이고 2의 입방근은'2 ** (1/3) '입니다. 또한 Math.hypot (x, y)는 빗변을 반환하고 다중 차원을 지원합니다. Math.hypot (x, y, z, w)는 4D 벡터'{x, y, z, w}' – Blindman67