메뉴 건너뛰기

창조도시 기록보관소

RPGXP/VX 원형 거리 측정(세 줄 스크립트)

2007.01.30 20:08

타이머 조회 수:688 추천:2

def range(target_x, target_y, selecter_x, selecter_y)
    @range = ((target_x - selecter_x) ** 2 + (target_y - selecter_y) ** 2) ** 0.5
end


 


역시 밑의 '원형 거리 측정' 이나 '마름모 거리 측정' 처럼 game_map 스크립트 함수 사이에 넣어 주시면 됩니다.


 


game_map.range(1, 2, 3, 4) 방식으로 사용할 수 있지요.


 


단, 제곱으로 거리를 측정할 필요가 없습니다.


만약 좌표가 (1, 5, 1, 10) 이라면


위의 계산 결과 5.0이 나옵니다.


만약 (1, 2, 2, 6) 이라면


위의 계산 결과 4.12310... 따위가 나옵니다.


xp 의 강점은 역시 소수점 이하의 계산이 가능하다는 거니까요.


 


우선 계산식을 설명해 보겠습니다.


 


** 2.0


이건 제곱하란 뜻입니다. ** 14 라면 14제곱이 되겠지요. (앞의 수를 열 네 번 곱하라는 뜻입니다)


 


** 0.5 ( -----> 1/2)


이건 제곱근 계산입니다. x ** 2 = y 라면 거꾸로 y ** 0.5 (<------ 1/2) = x 가 되는 셈입니다.


그렇다면 x ** 4 = y 일 때 x 값은 어떻게 알 수 있을까요?


정답 : x = y ** 0.25 (<------------1/4)


 


--------------------


제곱근을 구하는 또 다른 방법이 있습니다.


Math.sqrt(x)


Math 는 수학 계산을 위한 내부 모듈로, 사인, 탄젠트 따위의 삼각함수도 계산할 수 있습니다.


자세한 사항은 패스.


--------------------


 


계산 순서는 괄호 계산이 1번, 그 다음 곱셈이나 나눗셈 계산으로 좌측에서부터 먼저 계산합니다.


정리하면 다음과 같습니다.


 


1번 : (traget_x - selecter_x)


2번 : (target_y - selecter_y)


3번 : 1번 ** 2


4번 : 2번 ** 2


5번 : 3번 + 4번


6번 : 5번 ** 0.5


 


이상입니다.