ArithmeticExpression

算術関数と算術演算のコレクションです。他の Watch Face Format 要素で、リアルタイムの属性値とジャイロ効果を分析するために使用されます。

Wear OS 4 から導入されました。

以下は Wear OS デバイスの加速度計の $ x $ 値に基づいて、いずれかの方向に値を最大 5 度回転する式の例です。

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

この式は次の数式と同じです。ここで $ \theta_x $ は、$ x $ 方向の加速度計角度を表します。

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

関数

Watch Face Format は、次の文字列値を関数として認識します。

操作 説明 戻り値の型 対象
round() 入力値を浮動小数点値に変換してから、標準の round() 算術演算を実行します。 整数 バージョン 1
floor() 標準の floor() 算術演算を実行します。 フローティング バージョン 1
ceil() 標準の ceil() 算術演算を実行します。 フローティング バージョン 1
fract() 入力値の小数部を返します。小数部は、小数点の右側にある浮動小数点値の部分です。 フローティング バージョン 1
sin() 標準の sin() 三角演算を実行します。 フローティング バージョン 1
cos() 標準の cos() 三角演算を実行します。 フローティング バージョン 1
tan() 標準の tan() 三角演算を実行します。 フローティング バージョン 1
asin() 標準の asin() 三角演算を実行します。戻り値は常に $ [-\frac{\pi}{2}, \frac{\pi}{2}] $ の範囲内となります。 フローティング バージョン 1
acos() 標準の acos() 三角演算を実行します。戻り値は常に $ [0.0, \pi] $ の範囲内となります。 フローティング バージョン 1
atan() 標準の atan() 三角演算を実行します。戻り値は常に $ [-\frac{\pi}{2}, \frac{\pi}{2}] $ の範囲内となります。 フローティング バージョン 1
abs() 入力値を浮動小数点値に変換してから、標準の abs() 算術演算を実行します。 フローティング バージョン 1
clamp(,,) 入力値を浮動小数点値に変換し、clamp() Jetpack 演算を実行して、2 つ目と 3 つ目の値で定義された範囲内に 1 つ目の値を合わせます。 フローティング バージョン 1
rand(,) 次の条件を両方とも満たすランダムな浮動小数点値を生成します。
  • 1 つ目の値以上
  • 2 つ目の値以下
1 つ目の値は 2 つ目の値以下であることを前提としています。
フローティング バージョン 1
log() 標準の $ e $ を底とする log() 算術演算を実行します。 フローティング バージョン 1
log2() 2 を底とする対数をシミュレートします。この値は、入力値の 10 を底とする log() を 10 を底とする $ 2 $ の対数で割って計算されます。 フローティング バージョン 1
log10() 標準の 10 を底とする log() 算術演算を実行します。 フローティング バージョン 1
sqrt() 標準の sqrt() 算術演算を実行します。 フローティング バージョン 1
cbrt() 標準の cbrt() 算術演算を実行します。 フローティング バージョン 1
exp() 標準の exp() 算術演算を実行します。 フローティング バージョン 1
expm1() 入力値が $ 1 $ の場合、expm1() 算術演算を直接呼び出します。その他の入力値の場合は、標準の exp() 算術演算を実行して 1 を引き、関数をシミュレートします。 フローティング バージョン 1
deg() 標準の toDegrees() 算術演算を実行します。 $ \frac{\pi}{2} $ は 90 度、$ \pi $ は 180 度と定義されます。 フローティング バージョン 1
rad() 標準の toRadians() 算術演算を実行します。90 度は $ \frac{\pi}{2} $、180 度は $ \pi $ と定義されます。 フローティング バージョン 1
pow(,) 標準の pow() 算術演算を実行します。出力値は常に浮動小数点数です。 フローティング バージョン 1
numberFormat(,) 1 つ目の値の数値形式を 2 つ目の値に適用します。最初の値には次の文字を使用できます。
  • # -- 数字を表します。
  • , -- 桁の大きい数値のカンマ区切りを表します。
  • . -- 小数点を表します。
文字列 バージョン 1
icuText()

入力日付形式文字列を、想定される「言語 / 地域」形式に一致するパターンに変換します。親 PartText 要素に Localization 要素が含まれている場合、その「言語 / 地域」形式が使用されます。それ以外の場合は、Wear OS デバイスで設定されている「言語 / 地域」を使用します。

たとえば、デバイスが米国で使用されている場合、入力値を EE, MMM d, yyyy h:mm a にすると、Tue, Mar 14, 2023 1:59 PM という出力が生成されます。

文字列 バージョン 1
icuText(,)

最初の引数の入力日付形式文字列を、想定される「言語 / 地域」形式に一致するパターンに変換します。2 つ目の引数はタイムスタンプ文字列(ミリ秒単位)です。

PartText 要素に Localization 要素が含まれている場合は、その言語 / 地域の形式が使用されます。それ以外の場合は、Wear OS デバイスで設定されている「言語 / 地域」を使用します。

文字列 バージョン 2
icuBestText()

入力日付形式文字列を、想定される形式に一致するパターンを持つ現在の時刻に変換します。親 PartText 要素に Localization 要素が含まれている場合、その「言語 / 地域」形式が使用されます。それ以外の場合は、Wear OS デバイスで設定されている「言語 / 地域」を使用します。

たとえば、デバイスが米国で 2023 年 3 月 14 日午後 1 時 59 分に使用されている場合、入力値 yyyy MMM d EE a h:mmTue, Mar 14, 2023, 1:59 PM という出力になります。

文字列 バージョン 1
icuBestText(,)

最初の引数の入力日付形式文字列を、想定される形式に一致するパターンを持つ現在の時刻に変換します。2 つ目の引数はタイムスタンプ文字列(ミリ秒単位)です。

PartText 要素に Localization 要素が含まれている場合は、その言語 / 地域の形式が使用されます。それ以外の場合は、Wear OS デバイスで設定されている「言語 / 地域」を使用します。

文字列 バージョン 2
subText(,,)

1 つ目の値から部分文字列を抽出します。2 つ目の値は最初の値のゼロベース インデックスで、その値に当たる文字から部分文字列の抽出を開始します。3 つ目の値も最初の値のゼロベース インデックスで、その値に当たる文字の前で部分文字列の抽出を終了します(抽出されるのは、2 つ目の値に当たる文字から 3 つ目の値に当たる文字の前の文字まで)。

例:
  • subText("abc def", 2, 5) の場合は c d
  • subText("abc def", 2, 7) の場合は c def
文字列 バージョン 1
textLength()

入力文字列の長さを計算します。

例:
  • subText("abc def", 2, 5) の場合は c d
  • subText("abc def", 2, 7) の場合は c def
文字列 バージョン 1

演算子

Watch Face Format は、次の文字列値を演算子として認識します。

+
単項プラス(複数値の加算)。 整数値と浮動小数点値の両方をサポートします。
-
単項マイナス(複数値の減算)。整数値と浮動小数点値の両方をサポートします。
*
複数値(整数値または浮動小数点値)の乗算。
/

2 つの値(整数値または浮動小数点値)の除算。

2 つの整数値を除算して整数以外の値になった場合、小数点以下は浮動小数点数で表されます。たとえば、$ \frac{1}{2} = 0.5 $ となります。

また、$ x $ に任意の整数を取る $ \frac{x}{0} $ という式は 0 となります。

%

2 つの値(整数値または浮動小数点値)の剰余除算。

両方のオペランドが整数の場合、結果は 2 つの値を除算した解の「余り」です。たとえば、$ 19 \bmod 7 = 5 $ となります。

少なくとも 1 つのオペランドが浮動小数点数である場合、結果は解の「余り」を浮動小数点数で表した値です。たとえば、$ 19.0 \bmod 7 = 5.0 $ となります。

~

ビット演算子「NOT」。次に例を示します。

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

論理演算子「NOT」。二重否定をサポートします。次に例を示します。

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

ビット演算子「OR」。3 つ以上の入力値をサポートします。次に例を示します。

  • $ 1 | 0 = 1 $
  • $ 1 | 2 | 4 = 7 $
||
論理演算子「OR」。
&
ビット演算「AND」。2 つの入力値のみをサポートします。
&&
論理演算子「AND」。
(
開きかっこ。通常の演算順序では乗算と除算が加算と減算より優先されますが、その演算順序を変更する場合に使用します。
)
閉じかっこ。通常の演算順序では乗算と除算が加算と減算より優先されますが、その演算順序を変更する場合に使用します。
<
比較演算子「小なり」。整数値と浮動小数点数で表した同じ値とを比較すると、結果は false になります。
<=
比較演算子「小なりイコール」整数値と浮動小数点数で表した同じ値とを比較すると、結果は true になります。
>
比較演算子「大なり」。整数値と浮動小数点数で表した同じ値とを比較すると、結果は false になります。
>=
比較演算子「大なりイコール」。整数値と浮動小数点数で表した同じ値とを比較すると、結果は true になります。
?:

3 項演算をサポートします。一般的な形式は次のとおりです。

condition ? value_if_true : value_if_false

かっこを使用して、ネストされた 3 項演算をサポートします。

,

複数の引数を取る関数で、値を区切ります。

"

値の先頭と末尾に挿入すると、Watch Face Format に対して値を文字列として認識するよう指示できます。

==

左辺と右辺の値が等しいことを示します。整数値と浮動小数点数で表した同じ値とを比較すると、結果は true になります。

!=

左辺と右辺の値が等しくないことを示します。整数値と浮動小数点数で表した同じ値とを比較すると、結果は false になります。