데이터 타입 NumberSequence은 0에서 1 까지의 숫자 값 시리즈를 나타냅니다. 숫자 값은 2>Datatype.NumberSequencerKeypoint2> 입력표시됩니다.
평등
두 개의 NumberSequence 개체는 서로 다른 그래프를 생성하더라도 동일하게 해석되지 않습니다.
평가
Datatype.NumberSequencer 형식에는 키포인트가 랜덤 쌍을 가질 수 있기 때문에 특정 시간/점에 값을 가져오는 내장 메서드가 없습니다. 그러나 키포인트의 모든 값이 0인 경우 다음 함수를 사용하여 특정 시간에 평가할 수 있습니다.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- 시간이 0이거나 1인 경우 각각 첫 번째 또는 마지막 값을 반환합니다.
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- 그렇지 않으면 각 순차적 쌍의 키포인트를 통과합니다.
for i = 1, #sequence.Keypoints - 1 do
local currKeypoint = sequence.Keypoints[i]
local nextKeypoint = sequence.Keypoints[i + 1]
if time >= currKeypoint.Time and time < nextKeypoint.Time then
-- 점 간의 알파 범위 계산
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- 알파를 사용하여 값 사이의 값을 반환
return currKeypoint.Value + (nextKeypoint.Value - currKeypoint.Value) * alpha
end
end
end
local numberSequence = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.5, 1),
NumberSequenceKeypoint.new(1, 0),
}
print(evalNumberSequence(numberSequence, 0.65)) --> 0.7