NumberSequence
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Der NumberSequence-Datentyp repräsentiert eine Reihe von Zahlwerten von 0 bis 1. Die Zahlwerte werden mit dem 1> Datatype.NumberSequenzKeypoint1> eingebenausgedrückt. Dieser Typ wird in Eigenschaften wie <
Äquinoktium
Zwei NumberSequence Objekte sind nur gleichwertig, wenn die Werte ihres NumberSequenceKeypoint identisch sind, auch wenn beide zu ähnlichen Diagrammen führen.
Bewertung
Die NumberSequence -Typ hat keinen integrierten Methoden, um den Wert zu einem bestimmten Zeitpunkt/Punkt zu erhalten, da die Keypunkte zufällige Envelope haben können. jedoch, wenn die Eckenwerte deiner Keypunkte alle 0 sind, kannst du die folgende Funktion verwenden, um zu einem bestimmten Zeitpunkt zu bewerten.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Wenn die Zeit 0 oder 1 ist, geben Sie den ersten oder letzten Wert jeweils zurück
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Ansonsten durchlaufen Sie jedes sequenzielle Paar von Keypunkten
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
-- Berechnen Sie, wie weit sich Alpha zwischen den Punkten befindet
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Kehre den Wert zwischen den Punkten mit Alpha zurück
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
Zusammenfassung
Eigenschaften
Ein Array von NumberSequenceKeypoint Werten in aufsteigender Reihenfolge.