격투 게임에서 원형 임팩트를 가진 스킬 사용시 원안에 있는 적에게 대미지를 주려고 한다면 어떻게 구현할 수 있을까?
간단하게 피타고라스 정리를 이용하여 구현할 수 있다.
function isPointInCircle(pointX: number, pointY: number, circleX: number, circleY: number, radius: number) {
return (pointX - circleX) ** 2 + (pointY - circleY) ** 2 <= radius ** 2;
}
이 함수는 주어진 좌표 평면에서 점이 원 내에 있는지 확인하는 함수이다.
피타고라스의 정리에 의하면 빗선의 길이는 수식 x^2 + y^2 = r^2 중에서 r^2이며, 빗선은 원의 반지름과 같다.
즉, 특정 좌표(x^2 + y^2)가 원의 반지름(r^2)의 길이보다 작을 경우 원 안에 있다고 정의할 수 있다.
'즐거운 게임 수학' 카테고리의 다른 글
특정 좌표가 삼각형 안에 있는지 확인하기 (0) | 2023.06.05 |
---|---|
특정 좌표가 선 위에 있는지 감지하기 (0) | 2023.06.05 |
선형 보간법(linear interpolation) (0) | 2023.06.05 |
특정 각도에서 일정 거리의 좌표 구하기 (0) | 2023.06.05 |
각도의 단위, 라디안(radian)과 디그리(degree) (0) | 2023.06.05 |