Wyrażenie arytmetyczne

Zbiór funkcji i operacji arytmetycznych, których używają inne elementy formatu tarczy zegarka do rozpoznawania wartości atrybutów w czasie rzeczywistym i efektów żyroskopowych.

Wprowadzona w Wear OS 4.

Przykład

Przykładowe wyrażenie umożliwiające obrót wartości o maksymalnie 5 stopni w dowolnym kierunku na podstawie wartości $ x $ akcelerometru urządzenia z Wear OS:

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

...co jest odpowiednikiem następującego wyrażenia matematycznego, gdzie $\theta_x $ oznacza kąt akcelerometru w kierunku $ x $:

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

Funkcje

Format tarczy zegarka rozpoznaje jako funkcje te wartości w postaci ciągów znaków:

round()
Konwertuje wartość wejściową na wartość zmiennoprzecinkową, a następnie wykonuje standardowe działanie matematyczne round().
floor()
Wykonuje standardowe działania matematyczne floor().
ceil()
Wykonuje standardowe działania matematyczne ceil().
fract()
Zwraca ułamkową część wartości wejściowej, czyli część liczby zmiennoprzecinkowej, która jest widoczna po prawej stronie separatora dziesiętnego.
sin()
Wykonuje standardową operację trygonometryczną sin().
cos()
Wykonuje standardową operację trygonometryczną cos().
tan()
Wykonuje standardową operację trygonometryczną tan().
asin()
Wykonuje standardową operację trygonometryczną asin(). Zwrócona wartość mieści się zawsze w zakresie $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
Wykonuje standardową operację trygonometryczną acos(). Zwrócona wartość zawsze mieści się w zakresie $ [0.0, \pi] $.
atan()
Wykonuje standardową operację trygonometryczną atan(). Zwrócona wartość mieści się zawsze w zakresie $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
Konwertuje wartość wejściową na wartość zmiennoprzecinkową, a następnie wykonuje standardowe działanie matematyczne abs().
clamp(,,)
Konwertuje wartości wejściowe na wartości zmiennoprzecinkowe, a następnie wykonuje operację Jetpack w clamp(), aby dopasować pierwszą wartość w zakresie zdefiniowanym przez wartość drugą i trzecią.
rand(,)

Generuje losową wartość zmiennoprzecinkową, która spełnia jednocześnie te warunki:

  • Większe od pierwszej wartości lub jej równe.
  • Mniejsze lub równe drugiej wartości.

Zakładamy, że pierwsza wartość jest mniejsza od drugiej wartości lub jej równa.

log()

Wykonuje standardowe działanie matematyczne base-$ e $ log().

log2()

Symuluje logarytm dziesiętny. Wartość tę oblicza się, dzieląc logarytm dziesiętny (log10) wartości wejściowej przez logarytm dziesiętny z wykorzystaniem 2 USD.

log10()

Wykonuje standardowe działanie matematyczne w oparciu o 10-krotność log10.

sqrt()

Wykonuje standardowe działanie matematyczne sqrt().

cbrt()

Wykonuje standardowe działanie matematyczne cbrt().

exp()

Wykonuje standardowe działanie matematyczne exp().

expm1()

Bezpośrednio wywołuje działanie matematyczne expm1(), jeśli wartość wejściowa wynosi 1 USD. W przypadku każdej innej wartości wejściowej symuluje funkcję, wykonując standardowe działanie matematyczne exp(), a potem odejmując 1.

deg()

Wykonuje standardowe działanie matematyczne toDegrees(). $ \frac{\pi}{2} $ to 90 stopni, a $ \pi $ oznacza 180 stopni.

rad()

Wykonuje standardowe działanie matematyczne toRadians(). 90 stopni definiuje się jako $ \frac{\pi}{2} $, a 180 stopni – $ \pi $.

pow(,)

Wykonuje standardowe działanie matematyczne pow(). Wartość wyjściowa jest zawsze liczbą zmiennoprzecinkową.

numberFormat(,)

Stosuje format liczb z pierwszej wartości do drugiej.

Pierwsza wartość może zawierać te znaki:

  • # – reprezentuje cyfrę.
  • , – oznacza separator przecinkowy w przypadku dużych liczb.
  • . – oznacza separator dziesiętny.
icuText()

Konwertuje wejściowy ciąg formatu daty na wzorzec pasujący do oczekiwanego formatu języka. Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Jeśli np. urządzenie jest używane w Stanach Zjednoczonych, wartość wejściowa EE, MMM d, yyyy h:mm a daje takie wyniki: Tue, Mar 14, 2023 1:59 PM

icuBestText()

Konwertuje wejściowy ciąg formatu daty na bieżący czas, którego wzorzec jest zgodny z oczekiwanym formatem. Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Jeśli na przykład urządzenie będzie używane w Stanach Zjednoczonych 14 marca 2023 r. o 13:59, wartość wejściowa yyyy MMM d EE a h:mm daje takie dane wyjściowe: Tue, Mar 14, 2023, 1:59 PM

subText(,,)

Wyodrębnia podłańcuch z pierwszej wartości. Druga wartość wskazuje indeks liczony od 0 do pierwszej wartości, w której powinien rozpoczynać się podłańcuch. Trzecia wartość wskazuje indeks od 0 do pierwszej wartości, w której powinno zostać przerwane wyodrębnianie podłańcucha („od drugiej wartości do trzeciej wartości, chociaż nie jest”).

Przykłady:

  • Wydarzenie subText("abc def", 2, 5) zacznie się c d
  • Wydarzenie subText("abc def", 2, 7) zacznie się c def
textLength()

Oblicza długość ciągu wejściowego.

Operatorzy

Format tarczy zegarka rozpoznaje jako operatory te wartości w postaci ciągów znaków:

+
Jednoargumentowy operator plus lub dodanie wielu wartości. Obsługuje zarówno liczby całkowite, jak i wartości zmiennoprzecinkowe.
-
Jednoargumentowy minus lub odjęcie kilku wartości. Obsługuje zarówno liczby całkowite, jak i wartości zmiennoprzecinkowe.
*
Mnożenie większej liczby wartości całkowitych lub zmiennoprzecinkowych.
/

Dzielenie 2 wartości całkowitych lub liczb zmiennoprzecinkowych.

Jeśli dzielenie przez 2 liczby całkowite daje wartość niebędącą liczbą całkowitą, to część dziesiętna zostaje zachowana w wyniku z liczbą zmiennoprzecinkową. Na przykład $ \frac{1}{2} = 0, 5 $.

Dodatkowo wyrażenie $ \frac{x}{0} $ jest obliczane jako 0, gdzie $ x $ jest dowolną liczbą całkowitą.

%

Modułowy dzielenie 2 wartości całkowitych lub liczb zmiennoprzecinkowych.

Jeśli oba operandy są liczbami całkowitymi, wynikiem dzielenia 2 wartości jest reszta. Na przykład: $ 19 \bmod 7 = 5 $.

Jeśli przynajmniej 1 operand jest liczbą zmiennoprzecinkową, wynik jest zmiennoprzecinkowym odpowiednikiem reszty, np. $19.0 \bmod 7 = 5.0 $.

~

Operator bitowy „not” (nie). Kilka przykładów:

  • ~1 wynosi –2 USD
  • ~0 wynosi –1 USD
!

Logiczny operator „nie”, który obsługuje podwójne wyniki negatywne. Kilka przykładów:

  • !2 $ jest false
  • $ !!0 $ jest true
|

Operator bitowy „lub”. Obsługuje więcej niż 2 wartości wejściowe. Kilka przykładów:

  • 1 USD | 0 = 1 USD
  • 1 USD | 2 | 4 = 7 USD
||
Operator logiczny „lub”.
&
Operator bitowy „and”. Obsługuje dokładnie 2 wartości wejściowe.
&&
Operator logiczny „oraz”.
(
Otwórz nawias. Służy do zmiany standardowej kolejności operacji, gdzie mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
)
Zamknięty nawias. Służy do zmiany standardowej kolejności operacji, gdzie mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
<
Operator porównania „mniej niż”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.
<=
Operator porównania „mniejsze lub równe”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.
>
Operator porównania „większe niż”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.
>=
Operator porównania „większe niż lub równe”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.
?:

Zapewnia obsługę operacji potrójnych. Ogólny format jest następujący:

condition ? value_if_true : value_if_false

Obsługuje zagnieżdżone operacje potrójne za pomocą nawiasów.

,

Rozdziela wartości w funkcjach, które przyjmują więcej niż 1 argument.

"

Umieszczony na początku i na końcu wartości wskazuje, że format tarczy zegarka powinien interpretować ją jako ciąg znaków.

==

Porównaj pod względem równości. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.

!=

Porównaj pod kątem nierówności. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.