LERP-선형 보간
나는 며칠 전에 비슷한 문제에 대해이 대답을했지만 여기에 우리는 간다.
선형 보간은 진행률에 따라 두 숫자 사이의 숫자를 제공하는 함수입니다. 실제로 두 점 사이의 점을 얻을 수 있습니다.
위대한 공식-계산 방법
일반적인 LERP 공식은로 제공됩니다 pu = p0 + (p1 - p0) * u
. 어디:
- pu : 결과 번호
- p0 : 초기 번호
- p1 : 최종 수
- u : 진행 상황. 0에서 1 사이의 백분율로 제공됩니다.
백분율을 얻는 방법
"이 백분율을 어떻게 얻을 수 있습니까?" 걱정마 시작 벡터가 끝나기까지 포인트가 이동하는 데 몇 시간이 걸립니까? 좋아, 이미 지나간 시간으로 나눕니다. 이것은 당신에게 백분율을 줄 것입니다.
이것처럼 percentage = currentTime / finalTime;
벡터 계산
결과 벡터를 얻으려면 X 구성 요소와 Y 구성 요소에 하나씩 수식을 두 번 적용하기 만하면됩니다. 이 같은:
point.x = start.x + (final.x - start.x) * progress;
point.y = start.y + (final.y - start.y) * progress;
변동 시간 계산
당신은 당신의 포인트를 0.5 포인트 속도로 여행하고 싶을 수도 있습니다. 따라서 더 긴 거리가 더 긴 시간에 여행됩니다.
다음과 같이 할 수 있습니다.
나는 당신이 벡터 수학을 알고 있기를 바랍니다. 그렇지 않은 경우이 수식으로 벡터 길이를 계산할 수 있습니다 d = sqrt(pow(v.x, 2) + pow(v.y, 2));
.
끝난.
주의 사항 : 아마도이 속도가 의도 한 속도가 아닐 수도 있지만 이것이 맞습니다. 대각선으로 움직일 때도 선형으로 움직입니다. x + = 0.5f, y + = 0.5f를 수행하려면 벡터 수학 책을 읽고 계획을 다시 확인하십시오.
goal_dist
당신의if
상태 를 의미 합니까?