2019年7月31日水曜日

スウィズル演算子!

これはメモです。

大体スウィズル演算子とか調べれば出てくるし、腐るほど同じような記事があるから、この記事はもう世界に限りある電子記憶媒体を無駄に消費するものに他ならないけど、一回アウトプットしとくと覚えやすいのでこれは自分のためです。

スウィズル演算子とは

英語だとSwizzlingといって、直訳すると"急ぎ"てきな意味。
その名の通り、1-4次元配列から簡単に要素を取り出せる演算子のこと。
主にコンピューターグラフィックスで用いられてNvidiaの開発したCg (C for Graphics) でも使われている。

使い方

4次元配列 A {1.0, 2.0, 3.0, 4.0} があったとして、0番目からxyzwとなる。
A.xは1.0
A.zは3.0

配列として取り出すこともできる
A.xy は {1.0, 2.0}
A.zw は {3.0, 4.0}

また、順不同でも構わない。
A.zx は {3.0, 1.0}
A.wzyx は {4.0, 3.0, 2.0, 1.0}

スカラー値からも配列が作れる。

2.xx は {2, 2}

線形代数学的にいうと

実際単純な行列計算なので、式を見ればわかると思う。
めんどくさいからSwizzling (computer graphics) - Wikipediaから拝借

{\displaystyle A.wwxy={\begin{bmatrix}0&0&0&1\\0&0&0&1\\1&0&0&0\\0&1&0&0\end{bmatrix}}{\begin{bmatrix}1\\2\\3\\4\end{bmatrix}}={\begin{bmatrix}4\\4\\1\\2\end{bmatrix}}}

となる。

おしまい。

人気の投稿