2016-10-13 5 views
1
이 기능 할 수있는 방법이 있는지 궁금 해요

: 시작점이 엔드 포인트가 느리게 간다 가까워 때, 난 그냥 가고 싶어 같은 지금,직선 보간 더 선형

float linearInterpolation(float startPoint, float endPoint, float time) 
{ 
    return startPoint + ((endPoint - startPoint) * time); 
} 

더 선형 속도를 줄이거 나 속도를 높이기 위해 같은 속도를 유지해야합니다. 만약 내가 할 수있는 다른 변수를 구현해야합니다. 동일한 변수를 취해 다음 값을 출력하는 또 다른 함수도 사용할 수 있습니다.

+1

속도를 거리에 비례하므로 여행을 완료하는 데 항상 정확히 한 시간이 걸립니다. 고정 속도를 원한다면, 이렇게 말하십시오 :'startPoint + velocity * time' –

답변

1

저에게 lerp의 올바른 구현처럼 보입니다. 당신이 호출하고있는 코드를 보지 않고서는 속도가 느린 이유는 다른 startPoint (linearInterpolation에 대한 호출의 이전 결과로 호출하면 호출 할 때마다)가 호출된다는 것입니다. 보간 할 거리가 호출 될 때마다 속도가 느려지 게되는 시간 (프레임?).

보간 기간 동안 startPoint 및 endPoint 변수가 각 호출에 대해 동일하며 시간 변수 만 증가하고 있는지 확인하십시오.

+0

당신은 그것을 얻었습니다! 대단히 감사합니다 !! – StingRay21