NumberSequence
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El tipo de datos NumberSequence representa una serie de valores numéricos desde 0 a 1 . Los valores numéricos se expresan usando el introducir1> Datatype.NumberSequenciaKeypoint1> . Este tipo se usa en propiedades como 4>
Equidad
Dos objetos NumberSequence son equivalentes solo si los valores de sus NumberSequenceKeypoint son equivalentes, incluso si ambos darían lugar en gráficos similares.
Evaluación
El tipo NumberSequence no tiene un método incorporado para obtener el valor en un momento/punto específico porque los puntos de interfono pueden tener envolturas aleatorias. Sin embargo, si se supone que los valores de su punto de interfono son todos 0, puede usar la siguiente función para evaluar en un momento específico.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Si el tiempo es 0 o 1, devuelve el primer o último valor respectivamente
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- De lo contrario, pasa a través de cada par de puntos de clave secuencial
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
-- Calcular la distancia entre alfa y los puntos
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Devuelva el valor entre los puntos utilizando 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
Resumen
Propiedades
Un arreglo de valores NumberSequenceKeypoint en orden ascendente.