Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

八元數創建函數

template<typename T> octonion<T> spherical(T const & rho, T const & theta, T const & phi1, T const & phi2, T const & phi3, T const & phi4, T const & phi5, T const & phi6);
template<typename T> octonion<T> multipolar(T const & rho1, T const & theta1, T const & rho2, T const & theta2, T const & rho3, T const & theta3, T const & rho4, T const & theta4);
template<typename T> octonion<T> cylindrical(T const & r, T const & angle, T const & h1, T const & h2, T const & h3, T const & h4, T const & h5, T const & h6);

這些函數通過類似於極坐標構造複數的方式來構造八元數, 因為沒有嚴格等價的相對應於八元數的極坐標系.

球面 是一種簡單的 極坐標變換, 它以一個距離(magnitude)(正的),以及一個超球面上的由三個角度給定的點作為輸入 第一個角度, theta 有一個固有的 從-pi 到 +pi 的範圍, 而其它的兩個角度有一個固有的從 -pi/2 到 +pi/2的範圍 (類似於R3 空間上的球面坐標系). 由於對稱性和週期性, 由於存在大量的對稱性和週期性,如果這個距離是負數 ( 譯注:嚴格意義上來講,距離是非負的,作者這裡所說的 距離為負數是指使用這個函數的程序員將一個負值作為距離值傳遞給這個函數) 或者這個角度超過 了它的自然的分佈範圍也不會有什麼麻煩的問題產生. 然而,預期的退化仍然會發生(一個大小為0的距離將會使得角度設置值被忽略...).

圓柱 也是通常的柱面坐標繫在R3 空間(譯注:就是數學中通常所說的三維坐標空間)上的轉換, 柱面坐標反過來也是平面極坐標的另一個派生. 最開始的兩個輸入(函數的最開始的兩個參數)是這個八元數的第一個 C ( 譯註::在數學中 C 表示複數域) 成員的極坐標. 第三個和第四個輸入(函數的第三個和第四個參數)分別放入這個八元數的R ( 譯註::在數學中 R 表示實數域) 成員中.

多極(multipolar) 是極坐標系的另一個泛化. 這一次, 八元數的兩個C 成員都由極坐標給定.

在這種實現版本的八元數中, 並沒有以複數值為參數的構造八元數的操作,因為這種情況頗為複雜.

譯注: 關於各種坐標系的概念在 wikipedia中有相關的描述.


PrevUpHomeNext