NumberSequence
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Data NumberSequence jenis mewakili serangkaian nilai angka dari 0 ke 1 . Angka-angka ini diungkapkan menggunakan jenis 1> Datatype.NumberSequensKeypoint1> . Jenis ini digunak
Kesamaan
Dua objek NumberSequence hanya bernilai jika nilai dari masing-masing dari mereka NumberSequenceKeypoint sama, bahkan jika keduanya akan muncul dalam grafik serupa.
평가
Jenis NumberSequence tidak memiliki metode bawaan untuk mendapatkan nilai pada waktu/pon tertentu karena keypoin dapat memiliki envelop acak. Namun, mengingat nilai envelop keypoin Anda semua 0, Anda dapat menggunakan fungsi berikut untuk mengevaluasi pada waktu tertentu.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Jika waktu adalah 0 atau 1, maka kembalikan nilai pertama atau terakhir
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Jika tidak, lompat melalui setiap pasangan keypoin secara berurutan
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
-- Hitung seberapa jauh alpha berada di antara titik
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Kembalikan nilai antara poin menggunakan alfa
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
Rangkuman
Properti
Sebuah matriks NumberSequenceKeypoint berisi nilai dalam urutan yang meningkat.