NumberSequence
Hiển Thị Bản Đã Lỗi Thời
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Dữ liệu NumberSequence đại diện cho một loạt các giá trị số từ 0 đến 1 . Các giá trị số được biểu thị bằng kiểu 1>
Độ bình đẳng
Hai NumberSequence đối tượng là tương đương nhau chỉ nếu giá trị của họ NumberSequenceKeypoint đều tương đương, ngay cả khi cả hai đều kết thúc bằng các biểu đồ tương tự.
Đánh giá
Loại NumberSequence không có phương thức tích hợp để nhận giá trị vào một thời điểm/điểm nhất định vì keypoints có thể có bao gói ngẫu nhiên. Tuy nhiên, giả sử các giá trị của keypoints của bạn tất cả là 0 , bạ
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Nếu thời gian là 0 hoặc 1, trả giá trị đầu tiên hoặc cuối cùng
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Nếu không, hãy thực hiện mỗi cặp keypoint theo thứ tự
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
-- Tính toán khoảng cách giữa alphaa và các điểm
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Trả giá trị giữa các điểm bằng cách sử dụng alpha
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
Tóm Tắt
Thuộc Tính
Một dàn trị giá NumberSequenceKeypoint giá trị trong thứ tự tăng dần.