Arithmetikausdruck

Eine Sammlung arithmetischer Funktionen und Operationen, mit denen andere Watch Face-Format-Elemente zur Auflösung von Echtzeitattributwerten und gyroskopischen Effekten verwendet werden.

Eingeführt in Wear OS 4.

Beispiel

Ein Beispielausdruck zum Drehen eines Werts um bis zu 5 Grad in beide Richtungen, basierend auf dem $-x-$-Wert des Beschleunigungsmessers des Wear OS-Geräts:

(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)

Dies entspricht dem folgenden mathematischen Ausdruck, wobei $\theta_x $ den Winkel des Beschleunigungsmessers in Richtung $ x $ darstellt:

$$ \frac{5}{90} * max(min(\theta_x, 90), -90) $$

Funktionen

Das Zifferblattformat erkennt die folgenden Stringwerte als Funktionen:

round()
Konvertiert den Eingabewert in einen Gleitkommawert und führt dann die standardmäßige mathematische round()-Operation aus.
floor()
Führt die standardmäßige mathematische Operation floor() durch.
ceil()
Führt die standardmäßige mathematische Operation ceil() durch.
fract()
Gibt den Bruchteil des Eingabewerts zurück, also den Teil des Gleitkommawerts, der rechts vom Dezimalzeichen angezeigt wird.
sin()
Führt die standardmäßige trigonometrische sin()-Operation aus.
cos()
Führt die standardmäßige trigonometrische cos()-Operation aus.
tan()
Führt die standardmäßige trigonometrische tan()-Operation aus.
asin()
Führt die standardmäßige trigonometrische Operation asin() aus. Der zurückgegebene Wert liegt immer im Bereich $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
Führt die standardmäßige trigonometrische Operation acos() aus. Der zurückgegebene Wert liegt immer im Bereich [0,0, \pi] $.
atan()
Führt die standardmäßige trigonometrische Operation atan() aus. Der zurückgegebene Wert liegt immer im Bereich $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
Konvertiert den Eingabewert in einen Gleitkommawert und führt dann die standardmäßige mathematische abs()-Operation aus.
clamp(,,)
Konvertiert die Eingabewerte in Gleitkommawerte und führt dann den Jetpack-Vorgang clamp() so aus, dass der erste Wert in den durch den zweiten und dritten Wert definierten Bereich passt.
rand(,)

Generiert einen zufälligen Gleitkommawert, der gleichzeitig die folgenden Bedingungen erfüllt:

  • Größer oder gleich dem ersten Wert.
  • Kleiner als oder gleich dem zweiten Wert.

Nimmt an, dass der erste Wert kleiner oder gleich dem zweiten Wert ist.

log()

Führt die standardmäßige mathematische Operation "base-$ e $" log() aus.

log2()

Simuliert einen Logarithmus zur Basis 2. Dieser Wert wird berechnet, indem der Logarithmus zur Basis 10 (log10 des Eingabewerts) durch den Logarithmus von 2 $ zur Basis 10 geteilt wird.

log10()

Führt die standardmäßige mathematische Operation log10 zur Basis 10 durch.

sqrt()

Führt die standardmäßige mathematische sqrt()-Operation aus.

cbrt()

Führt die standardmäßige mathematische cbrt()-Operation aus.

exp()

Führt die standardmäßige mathematische exp()-Operation aus.

expm1()

Ruft direkt die mathematische expm1()-Operation auf, wenn der Eingabewert 1 $ beträgt. Bei jedem anderen Eingabewert wird die Funktion simuliert, indem die standardmäßige mathematische exp()-Operation ausgeführt und dann 1 subtrahiert wird.

deg()

Führt die standardmäßige mathematische toDegrees()-Operation aus. $ \frac{\pi}{2} $ ist als 90 Grad und $ \pi $ als 180 Grad definiert.

rad()

Führt die standardmäßige mathematische toRadians()-Operation aus. 90 Grad werden als $ \frac{\pi}{2} $ und 180 Grad als $ \pi $ definiert.

pow(,)

Führt die standardmäßige mathematische pow()-Operation aus. Der Ausgabewert ist immer eine Gleitkommazahl.

numberFormat(,)

Wendet das Zahlenformat im ersten Wert auf den zweiten Wert an.

Der erste Wert kann die folgenden Zeichen enthalten:

  • #: steht für eine numerische Zahl.
  • ,: steht für ein Komma als Trennzeichen in großen Zahlen.
  • . – steht für einen Dezimalpunkt.
icuText()

Wandelt den String für das Eingabedatumsformat in ein Muster um, das dem erwarteten Sprachformat entspricht. Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

Wenn das Gerät beispielsweise in den USA verwendet wird, liefert der Eingabewert EE, MMM d, yyyy h:mm a die folgende Ausgabe: Tue, Mar 14, 2023 1:59 PM

icuBestText()

Wandelt den String für das Eingabedatumsformat in die aktuelle Uhrzeit um, deren Muster dem erwarteten Format entspricht. Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

Wenn das Gerät beispielsweise am 14. März 2023 um 13:59 Uhr in den USA verwendet wird, ergibt der Eingabewert yyyy MMM d EE a h:mm die folgende Ausgabe: Tue, Mar 14, 2023, 1:59 PM

subText(,,)

Extrahiert eine Teilzeichenfolge aus dem ersten Wert. Der zweite Wert gibt den 0-basierten Index in den ersten Wert an, bei dem der Teilstring beginnen soll. Der dritte Wert gibt den 0-basierten Index in den ersten Wert an, an dem die Teilstring-Extraktion beendet werden soll („ab dem zweiten Wert bis zum dritten Wert, jedoch nicht einschließlich des dritten Werts“).

Beispiele:

  • subText("abc def", 2, 5) ist c d
  • subText("abc def", 2, 7) ist c def
textLength()

Berechnet die Länge des Eingabestrings.

Netzbetreiber

Das Zifferblattformat erkennt die folgenden Stringwerte als Operatoren:

+
Unäres Plus oder Addition mehrerer Werte. Unterstützt sowohl Ganzzahlen als auch Gleitkommawerte.
-
Unäres Minus oder Subtraktion mehrerer Werte. Unterstützt sowohl Ganzzahlen als auch Gleitkommawerte.
*
Multiplikation mehrerer Ganzzahl- oder Gleitkommawerte
/

Division von zwei Ganzzahl- oder Gleitkommawerten.

Wenn die Division von zwei Ganzzahlen zu einem Wert führt, der keine Ganzzahl ist, wird der Dezimalteil im Gleitkommaergebnis beibehalten. Beispiel: $ \frac{1}{2} = 0, 5 $.

Darüber hinaus wird der Ausdruck $ \frac{x}{0} $ als 0 ausgewertet, wobei $ x $ eine beliebige Ganzzahl ist.

%

Modulare Division von zwei Ganzzahl- oder Gleitkommawerten.

Wenn beide Operanden Ganzzahlen sind, ist das Ergebnis der Rest der Division der beiden Werte. Beispiel: $ 19 \bmod 7 = 5 $.

Wenn mindestens ein Operand eine Gleitkommazahl ist, ist das Ergebnis ein Gleitkomma-Äquivalent zum Rest. Beispiel: $ 19,0 \bmod 7 = 5,0 $.

~

Bitweiser „Nicht“-Operator. Hier einige Beispiele:

  • ~1 kostet -2 $
  • ~0 kostet -1 $
!

Logischer „nicht“-Operator, der doppelte negative Zahlen unterstützt. Hier einige Beispiele:

  • !2 $ sind false
  • $ !!0 $ entspricht true
|

Bitweiser „oder“-Operator. Unterstützt mehr als zwei Eingabewerte. Hier einige Beispiele:

  • 1 $ | 0 = 1 $
  • 1 $ | 2 | 4 = 7 $
||
Logischer „oder“-Operator
&
Bitweiser „und“-Operator. Unterstützt genau 2 Eingabewerte.
&&
Logischer „und“-Operator
(
Klammer auf. Wird zum Ändern der Standardreihenfolge von Vorgängen verwendet, wobei Multiplikation und Division normalerweise Vorrang vor Addition und Subtraktion haben.
)
Geschlossene Klammer. Wird zum Ändern der Standardreihenfolge von Vorgängen verwendet, wobei Multiplikation und Division normalerweise Vorrang vor Addition und Subtraktion haben.
<
Der Vergleichsoperator „kleiner als“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.
<=
Der Vergleichsoperator „kleiner oder gleich“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis true.
>
Der Vergleichsoperator „größer als“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.
>=
Der Vergleichsoperator „größer als oder gleich“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis true.
? und :

Bietet Unterstützung für ternäre Vorgänge. Das allgemeine Format sieht so aus:

condition ? value_if_true : value_if_false

Unterstützt verschachtelte ternäre Operationen bei Verwendung von Klammern.

,

Trennt Werte in Funktionen, die mehr als ein Argument annehmen.

"

Gibt an, dass das Zifferblattformat den Wert als String interpretieren soll, wenn das Zifferblatt am Anfang und Ende eines Werts platziert wird.

==

Für Gleichheit vergleichen. Beim Vergleich einer Ganzzahl mit ihrem Gleitkommawert ist das Ergebnis true.

!=

Für Ungleichheit vergleichen. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.