>> GAViewer 0.85, created by Daniel Fontijne,
Leo Dorst, Tim Bouma, University of Amsterdam;
Stephen Mann, University of Waterloo.
Type 'help()' for help on console functions.
>> a = no
a = 1.00*no

-
- Ctrlを押しながら右クリックでドラッグすると赤い点が動く
>> a = no
a = 1.00*no
>> a
ans = 0.01*e1 + 0.04*e2 + 0.03*e3 + 1.00*no + 0.00*ni
||
--位置について、何かしら5つの成分((e1,e2,e3),(no,n1))の線形和になっていることがわかる
--点をさらに3つ加えてみる
>||
b = c = d = no
>> b = c = d = no
d = 1.00*no
c = 1.00*no
b = 1.00*no
-
- 画面上、点が重なって表示されるので何の変哲もないが、Ctrl 右クリック ドラッグすると、分離して4点になる
- 多様体、r-blade
sphere = a^b^c^c
circle = a^b^c
-
- とすると、4点を通る球、3点を通る円が定義されて、円の方は描かれる

-
- 左クリックで全体がぐるぐる回る
- ちなみにa^b^cは3つのウェッジ積
- オブジェクトはツールバーのView -> Select objectで選べて、それを選ぶと左のパネルで「向き」の表示ができるようになる。下図はcircleとsphereとに向き表示をさせたもの。a^b^c^dとa^b^d^cとではウェッジ積を一ペア交換しているので「反対向き」になる

-
- 直線と平面は、niを用いることで作れる。点a,b(,c)と無限遠点niとを通る円(球)がそれぞれ直線と平面である

dynamic{line = a^b^ni,},
dynamic{plane = a^b^c^ni,},
-
- ここでいろいろな多様体の線形表現を見ておこう
- 球は、4成分のウェッジ積の線形和
- 円(直線)は3成分のウェッジ積の線形和
- 線分は2成分のそれ
- 点は1成分のそれ
>> sphere2 = a^b^d^c
sphere2 = -3.85*e1^e2^e3^no + -2.87*e1^e2^e3^ni + 0.38*e1^e2^no^ni + 2.27*e1^e3^no^ni + 0.09*e2^e3^no^ni
>> dynamic{ line = a^b^ni,},
line = 0.12*e1^e2^ni + -2.04*e1^no^ni + 1.60*e2^no^ni
>> dynamic{plane=a^b^c^ni,},
plane = -2.98*e1^e2^no^ni
>> ppair = a^b
ppair = 0.12*e1^e2 + -2.04*e1^no + 1.60*e2^no + -1.59*e1^ni + 1.19*e2^ni + 0.99*no^ni
>> d
ans = 0.09*e1 + -1.24*e2 + 1.29*e3 + 1.00*no + 1.60*ni
-
- 幾何代数で言うところの bladeというのは、このウェッジ積で定義される多様体のこと。1-bladeは点、2-bladeは線分、3-bladeは円、4-bladeは球
- 双対
- 双対っていうのがあって、行ったり来たりできる
- sphere1の双対をとってdsphere1とし、さらにその双対をとってddsphere1にしてある。ウェッジ積表現を比べるとsphere1とddsphere1とが符合違いで同じであることがわかる。符合がどなるかは
で決まる(nは次元)
>> sphere1 = a^b^c^d
sphere1 = 7.70*e1^e2^e3^no + 14.06*e1^e2^e3^ni + -1.56*e1^e2^no^ni + 1.03*e1^e3^no^ni + -2.04*e2^e3^no^ni
>> dsphere1 = dual(sphere1)
dsphere1 = -2.04*e1 + -1.03*e2 + -1.56*e3 + -7.70*no + 14.06*ni
>> ddsphere1 = dual(dsphere1)
ddsphere1 = -7.70*e1^e2^e3^no + -14.06*e1^e2^e3^ni + 1.56*e1^e2^no^ni + -1.03*e1^e3^no^ni + 2.04*e2^e3^no^ni
>>
||
--多様体上の点である(に含まれる?)ということはa^sphere1 = 0で表される。aはsphere1上の点だが、fは違う。aがsphere1上の点であるとき、双対であるdsphere1との関係としては、[tex:a \cdot dsphere1=0]という関係でもある
>||
>> a ^ sphere1
ans = 0
>> f ^ sphere1
ans = -8.38*e1^e2^e3^no^ni
-
- 2つの多様体の交わりは、
という
- 2つの球の交わりは円であるので、以下のようにできる(向きに注意。負号を付ける??)
x = dual(dual(sphere1) ^ dual(sphere2))
-
-
- だらだらと長い表現になるが、2-bladeであることがわかる
dsp3 = 9.03*e1^e2^e3 + 1.41*e1^e2^no + 3.19*e1^e3^no + 11.83*e2^e3^no + 4.41*e1^e2^ni + 4.62*e1^e3^ni + 23.99*e2^e3^ni + -0.84*e1^no^ni + -2.03*e2^no^ni + 2.43*e3^no^ni
newpt = pt(e1 + 2 e2)
- 5つの点
- no,e1,e2,e3,niの5つの点がある。e1,e2,e3は3次元の正規直交基底でno,niはノルムが0という特別な点である。
- 5津の点は相互に内積が0の関係であるのを原則とするが、no,niだけは自身のノルム0である代わりにno,ni同士の内積が-1となっている
- 特徴
- 標準化した二点の内積はユークリッド距離の-1/2倍→点自身の内積は距離が0だから0になる
- 標準化は(射影空間に代表をとるようなこと)、自身のniと自身の内積で割ったものの符合を変えたもの
- 内積が0になるとき、それらは相互に双対
- なので、幾何オブジェクトが
と表現できれば、aの双対表現がbになる
はxが点a,bから等距離であることを表しているが、これを式変形すると
となり、これは、a,bから等距離である点の集まりの双対表現が(a-b)であることを意味する
はxが点cからの距離が
であることを表し、xが標準化されていれば
となるから、cを中心とした円・球の双対表現が得られたことになる
- ここで
は
と書けばこれは
を幾何積(geometric product)と呼ぶ演算に対応する
- アプリでは*を書いても書かなくてもそのようにできる。これはnoを中心として半径3の球である
no - ni 3 3/2
no - ni * 3 * 3/2
- Tangent blades(接線、接面)
- 以下はbivector(2つのベクトル)で張られた接面。球のdualとe1で接する接面との交わりをundualizeして見せている
- Free blades
- 方向だけあって起点がないものも作れる
- 以下は、二つの平行な平面の双対表現を介して2平行平面の交わりを出している。「交わらない」ので存在はしないが、方向成分はある平面であるという性質は持つので、free bivectorとして示される
- dual ( no-ni/2)^(e1+ni))