Slide 1

Slide 1 text

Projective Geometric Algebra 入門 レイトレ合宿 10 セミナー kinankomoti (10/14 追記)

Slide 2

Slide 2 text

質問 突然ですが皆さんに質問です Twitter(現X)でこんな感じのを見たことはありませんか? Question

Slide 3

Slide 3 text

何これ? なんか線とか点を扱ってる? , とか変な記号がある 基底っぽいのがなんかある What’s? ∧ ∨

Slide 4

Slide 4 text

何これ? 気になってこれを調べてみると Eric Lengyel先生が書いた Foundations of GameEngine Developmentとか書 いている方 そういう数学の一分野らしい ジオメトリの操作を表している なんか気になる・・・ What’s?

Slide 5

Slide 5 text

Projective Geometric Algebra Illuminated 本が出るらしい(4月ぐらい?) Projective Geometric Algebra Illuminated(PGAI) 買ってみよう!(2万ぐらいした) PGAI

Slide 6

Slide 6 text

Projective Geometric Algebra Illuminated 読んでみると… 全然わからん! ずっと謎の定義が続く! 記号がいっぱいある! 何をしたいのかよくわからん・・・ ギャー! PGAI

Slide 7

Slide 7 text

今回の発表の目的 PGAのモチベーションがなんであるか 何がやりたいのかが分かりにくい PGAIのごく最初の部分をちょっと解説する 入門の手助け そこから先わかんないので・・・ Purpose of the presentation

Slide 8

Slide 8 text

先に 知ったからって別に高速化につながるわけではない 応用先はそこそこある(みたい)です 知らない内に使っている(といっても過言ではない) 今回はそういう数学の分野があるんだぐらいに思ってください 用語は基本的にPGAIに従います 特有の用語があったりします 基本的に と書いたらベクトルだと思ってください スカラーは大体 と書きます Preface a s, t

Slide 9

Slide 9 text

目次 1. Projective Geometric Algebra(PGA)とは何か 2. 同次座標系 3. 同次座標系とジオメトリの表現 4. PGAチュートリアル 5. アンチウェッジ積とIntersection 6. まとめ 7. おわり 8. 参考資料 9. Appendix

Slide 10

Slide 10 text

Projective Geometric Algebra(PGA)とは何か

Slide 11

Slide 11 text

Projective Geometric Algebra(PGA)とは何か 射影幾何代数 Projective : 射影、ここでは同次座標系を使うことを意味している Geometric Albebra : 幾何代数 What’s Projective Geometric Algebra

Slide 12

Slide 12 text

幾何代数 「幾何学的対象そのものやそれに対する操作を代数的に表現する」 例えば直線や平面などのジオメトリを表す変数 が用意できて、回転を表すRみたいなのがあったら、回転後の平面を を とかみたいな感じで表せられる代数系のことを言います Geometric Algebra g g′ g = ′ RgR−1 g = ′ Rg

Slide 13

Slide 13 text

幾何代数 「幾何学的対象そのものやそれに対する操作を代数的に表現する」 例えば直線や平面などのジオメトリを表す変数 が用意できて、回転を表すRみたいなのがあったら、回転後の平面を を とかみたいな感じで表せられる代数系のことを言います もともとは物理学で物体の移動とかを数学的に全部代数的に表現できないかという試みから生まれたもの 私たちが普段使う「ベクトル」の発展に大きく貢献している 内積や外積といった概念もこのあたりから生まれている Geometric Algebra g g′ g = ′ RgR−1 g = ′ Rg

Slide 14

Slide 14 text

幾何代数 実は知らないうちに使っています Geometric Algebra

Slide 15

Slide 15 text

幾何代数 実は知らないうちに使っています クオータニオン(ハミルトン代数)は幾何代数の一部 クオータニオンでは点を として表現できて、そ れに対する回転をあるクオータニオン によって次のように回転で きる 代数的に幾何的な操作を表現可能! Geometric Algebra r = (x, y, z, 0) q r = ′ qrq−1

Slide 16

Slide 16 text

幾何代数 おおむね以下の代数系が幾何代数として扱われています ハミルトン代数(クオータニオン) グラスマン代数 クリフォード代数 共形クリフォード代数 Geometric Algebra

Slide 17

Slide 17 text

グラスマン代数 19世紀中期ぐらいにドイツ人の数学者Hermann Grassmannが考案した代数系 幾何代数の基礎 ジオメトリの表現やジオメトリ同士の変換についてを代数的 に記述できる 今回の発表ではこれを軽く触れます Grassmann Algebra

Slide 18

Slide 18 text

クリフォード代数 複素数、クオータニオン、デュアルクオータニオンなどを一般化した代数系 グラスマン代数もこれに含まれている 幾何代数においては移動、回転などのジオメトリ自体の操作を表現するのに使う Grassmann Algebra

Slide 19

Slide 19 text

同次座標系とグラスマン代数 グラスマン代数はそのままだと「原点を通るジオメトリ」しか扱えない 同次座標系は実際使う3次元では原点を通らなくて済み、同時座標では原点を通っているものが扱える -> 同次座標系を使えば3次元上の任意の位置にあるジオメトリをグラスマン代数に使える! Homogeneous Coordinate and Grassmann Algebra

Slide 20

Slide 20 text

幾何代数 Geometric Algebra

Slide 21

Slide 21 text

同次座標系 Homogeneous Coordinate System

Slide 22

Slide 22 text

同次座標系 3次元座標系 に対して、以下のような対応関係を 持つ4次元座標系のことを同次座標系と呼ぶ N次元座標に対してもN+1次元の同時座標系を考えることが できます Homogeneous Coordinate System (x, y, z) (x, y, z) = (x, y, z, 1) = (wx, wy, wz, w)

Slide 23

Slide 23 text

同次座標系 同時座標系 はスカラー倍 しても、表す座標は 変化しない性質がある(同次性 Homogeneous) 幾何的には3次元の座標の点と原点を通る4次元の線を 対応付けている Homogeneous Coordinate System (x, y, z, w) k k(wx, xy, wz, w) = ( ​ , ​ , ​ , 1) = kw kx kw kwy kw kwz (x, y, z, 1)

Slide 24

Slide 24 text

同次座標系の方向ベクトル 方向ベクトル について次のような対応付けを行う これ自体はたぶん便利だったからそういう定義をしている Direction Vector in Homogeneous Coordinate System d = (d ​ , d ​ , d ​ ) x y z (d ​ , d ​ , d ​ ) = x y z (d ​ , d ​ , d ​ , 0) x y z

Slide 25

Slide 25 text

の同次座標の解釈 は定義不能では・・・? 3次元座標 を した点 を考える。こ の同次座標は と表すことができる。 w = 0 Interpretation for Homogeneous Coordinate w = 0 w = 0 (x, y, z) α (ax, ay, az) (ax, ay, az) = (x, y, z, ​ ) a 1

Slide 26

Slide 26 text

の同次座標の解釈 ここで を無限大にすると・・・? は無限遠方へ 同次座標系は へ の同次座標は三次元座標の無限遠方点と対応付 けられている(としている) 位置ベクトルとは被らないので区別できて嬉しい w = 0 Interpretation for Homogeneous Coordinate w = 0 α (ax, ay, az) → (∞, ∞, ∞) (x, y, z, 0) w = 0

Slide 27

Slide 27 text

同次座標系とジオメトリの表現

Slide 28

Slide 28 text

直線の表現 直線を決めるには6次元の情報が必要 点 を通る直線(上の点) は任意のスカラー を使って以下の ように表現できます なので2点の位置座標で一つの直線を表すことは可能 6次元の座標で という感じに Presentation for Line p, q l t l(t) = (q − p)t + p (p ​ , p ​ , p ​ , q ​ , q ​ , q ​ ) x y z x y z

Slide 29

Slide 29 text

プリュッカー座標 陰関数的に表現することも可能、これをImplicit Formという Implicit Fromをちょっと展開すると以下のように書ける ここで と をそれぞれDirectionとMomentと呼び、このベクトルでも直線を定義することが可能である この をまとめた座標 をプリュッカー座標とかみたいな感じで表せられる代数系のことを言います ある一つの直線を表す座標 Plücker Coordinate (q − p) × (l − p) = 0 (q − p) × l − q × p = 0 (q − p) −q × p v × l + m = 0 v, m (v ​ , v ​ , v ​ , m ​ , m ​ , m ​ ) x y z x y z

Slide 30

Slide 30 text

プリュッカー座標 点 とプリュッカー座標の関係 プリュッカー座標 はどんな直線を 表している? 1. Moment に対して垂直な半径 の円に接する 直線の内 2. 右回りの方向でDirection に平行な直線 を表している そういう表し方があるぐらいに留めてください Plücker Coordinate p, q ​ ​ v m = (q ​ − p ​ , q ​ − p ​ , q ​ − p ​ ) x x y y z z = (p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ ) y z z y z x x z x y y x (1) (2) (v ​ , v ​ , v ​ , m ​ , m ​ , m ​ ) x y z x y z m ∣m∣/∣v∣ v

Slide 31

Slide 31 text

プリュッカー座標 プリュッカー座標は同次性を持つ , とスカラー倍しても、Implicit Formは変わらないので同じ直線を表す 同次座標系と相性がいい Plücker Coordinate km kv km × l − kv = 0 k(m × l − v) = 0 m × l − v = 0

Slide 32

Slide 32 text

平面の表現 平面についても同様の話ができます。平面のImplicit Formは 平面の法線を として、高さを (スカラー)で表示できます 平面は法線の成分と によって で表現するこ とができる 同様にこれは同次性を持ちます (平面はむしろImplicit Formの方が知られている気がします) Presentation for Plane n h n ⋅ g + h = 0 h (n ​ , n ​ , n ​ , h) x y z kn ⋅ g + kh = 0 k(n ⋅ g + h) = 0 n ⋅ g + h = 0

Slide 33

Slide 33 text

同次座標系の良さ 4次元にすると座標に対してさらに+情報が入れられるのでなかなか便利 位置ベクトルと方向ベクトルの区別がつく 同時座標から3次元座標の変換は一意的に行える 対応付けが明らかで楽 原点を通らない3次元のオブジェクトは同次座標では原点を通るようになる グラスマン代数的には一番ありがたい 任意の位置にあるものが扱えるようになる! Merit of Homogeneous Coordinate System

Slide 34

Slide 34 text

PGAチュートリアル ~Intersectionまで~

Slide 35

Slide 35 text

グラスマン代数のウェッジ積 グラスマン代数では 次元ベクトル に対してウェッジ積 という演算を定義します 外積の一種として扱われます 立ち位置としてはクロス積を任意の次元でも一般化したもの Wedge Product in Glassmann Algebra n a, b ∈ Rn ∧ ∧ : R × n R → n ∧ R 2 n a ∧ b

Slide 36

Slide 36 text

グラスマン代数のウェッジ積 ウェッジ積によってできた はBivectorと呼びます。 Bivectorはベクトルではありません 新しい基底が作られたみたいなものと捉えてください はこれ以上まとめられない Wedge Product in Glassmann Algebra a ∧ b (a ∧ b ∈ ∧ R ) 2 n a + a ∧ b

Slide 37

Slide 37 text

ウェッジ積の性質 ウェッジ積は以下の性質を満たすものとして定義されています 結合則 分配則 スカラー 反可換性 Property of Wedge Product (a ∧ b) ∧ c = a ∧ (b ∧ c) (a + b) ∧ c = a ∧ c + b ∧ c, a ∧ (b + c) = a ∧ b + a ∧ c s ∧ t = t ∧ s = st s ∧ a = sa a ∧ b = −b ∧ a

Slide 38

Slide 38 text

ウェッジ積の反可換性 反可換性(Anticommutativity)はウェッジ積で一番重要な性質 この性質より、自分自身とのウェッジ積は0になる。 Proof. に を代入したら出てくる Anticommutativity of Wedge Product a ∧ b = −b ∧ a a ∧ a = 0 b a ​ ​ a ∧ a 2a ∧ a a ∧ a = −a ∧ a = 0 = 0 (3) (4) (5)

Slide 39

Slide 39 text

k-Vector ウェッジ積はいくつもかけることができる(最大 回まで) ウェッジ積をかけた回数に応じて、その結果はBivector, Trivector…と名前が付けられている 一般化して 回のウェッジ積を掛けたものはk-vectorと呼ぶ k-vector は と表記できます この時の をGradeと言います スカラーは0-Vectorとみなします k-vectorをいくつもまとめたものをMultivectorといいます k-Vector n a ∧ b ∧ c ∧ d ∧ ... k − 1 u u ∈ ∧ R k n k s + a + b + c + a ∧ b + b ∧ c + c ∧ a + a ∧ b ∧ c

Slide 40

Slide 40 text

3次元座標で考えてみる 3次元座標系 について、各基底ベクトルを と表す もう一つの座標 とウェッジ積をとってみる Grasmann Algebra in 3D p = (p ​ , p ​ , p ​ ) x y z e ​ , e ​ , e ​ 1 2 3 p = p ​ e ​ + x 1 p ​ e ​ + y 2 p ​ e ​ z 3 q = (q ​ , q ​ , q ​ ) x y z q = q ​ e ​ + x 1 q ​ e ​ + y 2 q ​ e ​ z 3 p ∧ q

Slide 41

Slide 41 text

3次元座標で考えてみる 先ほどのウェッジ積の性質を用いて、展開してあげると Grasmann Algebra in 3D ​ ​ p ∧ q = (p ​ e ​ + p ​ e ​ + p ​ e ​ ) ∧ (q ​ e ​ + q ​ e ​ + q ​ e ​ ) x 1 y 2 z 3 x 1 y 2 z 3 = p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x 2 1 1 y x 2 1 z x 3 1 + p ​ p ​ e ​ ∧ e ​ + p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x y 1 2 y 2 2 2 z y 3 2 + p ​ p ​ e ∧ e ​ + p ​ p ​ e ​ ∧ e ​ + p ​ e ​ ∧ e ​ x z 1 3 y z 2 3 z 2 3 3 (6) (7) (8) (9)

Slide 42

Slide 42 text

3次元座標で考えてみる 同じベクトル同士は0になる性質を利用すると Grasmann Algebra in 3D ​ ​ p ∧ q = (p ​ e ​ + p ​ e ​ + p ​ e ​ ) ∧ (q ​ e ​ + q ​ e ​ + q ​ e ​ ) x 1 y 2 z 3 x 1 y 2 z 3 = p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x 2 1 1 y x 2 1 z x 3 1 + p ​ p ​ e ​ ∧ e ​ + p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x y 1 2 y 2 2 2 z y 3 2 + p ​ p ​ e ∧ e ​ + p ​ p ​ e ​ ∧ e ​ + p ​ e ​ ∧ e ​ x z 1 3 y z 2 3 z 2 3 3 (10) (11) (12) (13)

Slide 43

Slide 43 text

3次元座標で考えてみる 同じベクトル同士は0になる性質を利用すると Grasmann Algebra in 3D ​ ​ p ∧ q = (p ​ e ​ + p ​ e ​ + p ​ e ​ ) ∧ (q ​ e ​ + q ​ e ​ + q ​ e ​ ) x 1 y 2 z 3 x 1 y 2 z 3 = p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ y x 2 1 z x 3 1 + p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x y 1 2 z y 3 2 + p ​ p ​ e ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x z 1 3 y z 2 3 (14) (15) (16) (17)

Slide 44

Slide 44 text

3次元座標で考えてみる 反可換性 を使う Grasmann Algebra in 3D a ∧ b = −b ∧ a ​ ​ p ∧ q = (p ​ e ​ + p ​ e ​ + p ​ e ​ ) ∧ (q ​ e ​ + q ​ e ​ + q ​ e ​ ) x 1 y 2 z 3 x 1 y 2 z 3 = p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ y x 2 1 z x 3 1 + p ​ p ​ e ​ ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x y 1 2 z y 3 2 + p ​ p ​ e ∧ e ​ + p ​ p ​ e ​ ∧ e ​ x z 1 3 y z 2 3 (18) (19) (20) (21)

Slide 45

Slide 45 text

3次元座標で考えてみる まとめるとこうなる 各係数がクロス積の各成分と一致している ウェッジ積はクロス積的な性質を持っていることがわかる(外積) Grasmann Algebra in 3D p ∧ q = (p ​ q ​ − y z p ​ q ​ )e ​ ∧ z y 2 e ​ + 3 (p ​ q ​ − z x p ​ q ​ )e ​ ∧ x z 3 e ​ + 1 (p ​ q ​ − x y p ​ q ​ )e ​ ∧ y x 1 e ​ 2

Slide 46

Slide 46 text

3次元座標で考えてみる さらにここに をさらにかけるとTri-Vectorが得られる (計算は省略します) Trivectorの係数はスカラー三重積 の値になる k-vectorは1つにまとめられる(同じ基底の組み合わせは消えるので) Grasmann Algebra in 3D r = (r ​ , r ​ , r ​ ) x y z p ∧ q ∧ r = det((p, q, r))e ​ ∧ 1 e ​ ∧ 2 e ​ 3 p ⋅ (q × r)

Slide 47

Slide 47 text

任意次元のk-vector 各基底のウェッジ積を のように添え字で省略します 先ほどの例を見ると3次元座標系ではk-vectorは次のように得られました s (スカラー) k-vectorの数はそれぞれのGradeよって変わる k-vector in Arbitrary Dimension e ​ ∧ 1 e ​ = 2 e ​ 12 e ​ , e ​ , e ​ 1 2 3 e ​ , e ​ , e ​ 23 31 12 e ​ 123

Slide 48

Slide 48 text

任意次元のk-vector 自分自身を含まない 順番は変えられる(符号の反転はあるが) ので、 次元座標に置けるk-vectorの数は組み合わせ で表される 3次元 : 1, 3, 3, 1 4次元 : 1, 4, 6, 4, 1 … 最終的に次元数 のグレードを持つn-Vectorにまとまっていく 次元数 以上のk-vectorは作れない(どうあがいても基底が被るので) k-vector in Arbitrary Dimension n ​ C ​ n k n n

Slide 49

Slide 49 text

幾何的な対応 ここから本題に入ります。 前々章で幾何代数の説明で「代数的に幾何的対象を扱えるようにする」という話がありました ということで今から幾何的対象をグラスマン代数に組み込んでみましょう Geometric Correspondence

Slide 50

Slide 50 text

幾何的な対応 試しに4次元同次座標 にある2つの点 についてウェッジ積を取ってみます 計算してみるとこんな感じになります(計算は3次元と同様です) Geometric Correspondence (p ​ , p ​ , p ​ , p ​ )、(q ​ , q ​ , q ​ , q ​ ) x y z w x y z z p, q ​ ​ p ∧ q = (q ​ p ​ − p ​ q ​ )e ​ + (q ​ p ​ − p ​ q ​ )e ​ + (q ​ p ​ − p ​ q ​ )e ​ x w x w 41 y w y w 42 z w z w 43 + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ y z z y 23 z x x z 31 x y y x 12 (22) (23)

Slide 51

Slide 51 text

幾何的な対応 ここで3次元( )に投影してみると・・・? Geometric Correspondence w = 1 ​ ​ p ∧ q = (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ x x 41 y y 42 z z 43 + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ y z z y 23 z x x z 31 x y y x 12 (24) (25)

Slide 52

Slide 52 text

おや・・・・?

Slide 53

Slide 53 text

幾何的な対応 ウェッジ積の結果 点を を通るプリュッカー座標 Geometric Correspondence ​ ​ p ∧ q = (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ x x 41 y y 42 z z 43 + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ y z z y 23 z x x z 31 x y y x 12 (26) (27) p, q ​ ​ v m = (q ​ − p ​ , q ​ − p ​ , q ​ − p ​ ) x x y y z z = (p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ ) y z z y z x x z x y y x (28) (29)

Slide 54

Slide 54 text

幾何的な対応 ウェッジ積の結果 点を を通るプリュッカー座標 各Bi-Vectorの係数は点 , を通る直線のプリュッカー座標と一致している Geometric Correspondence ​ ​ p ∧ q = (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ + (q ​ − p ​ )e ​ x x 41 y y 42 z z 43 + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ + (p ​ q ​ − p ​ q ​ )e ​ y z z y 23 z x x z 31 x y y x 12 (30) (31) p, q ​ ​ v m = (q ​ − p ​ , q ​ − p ​ , q ​ − p ​ ) x x y y z z = (p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ , p ​ q ​ − p ​ q ​ ) y z z y z x x z x y y x (32) (33) p q

Slide 55

Slide 55 text

幾何的な対応 つまり は点 , を通る直線の情報を持っている! Geometric Correspondence p ∧ q p q

Slide 56

Slide 56 text

幾何的な対応 ではさらに点 を追加すると・・・? これは点 を含む平面の座標と一致する!(詳しくは Appendix参照) Geometric Correspondence r ​ ​ p ∧ q ∧ r = l ∧ r = (v ​ r ​ − v ​ r ​ + m ​ )e ​ y z z y x 234 + (v ​ p ​ − v ​ p ​ + m ​ )e ​ z x x z y 341 + (v ​ p ​ − v ​ p ​ + m ​ )e ​ x y y x z 241 − (m ​ p ​ + m ​ p ​ + m ​ p ​ )e ​ x x y y z z 123 p, q, r

Slide 57

Slide 57 text

k-vectorと幾何的対象の関係 各k-vectorは対応するジオメトリを表現することができる - 1-vector : 点 - 2-vector : 直線 - 3-vector : 平面 Wedge積は2つのジオメトリが含まれるような高次のジオメトリを返す関数として働く(Meet関数) なんとなくジオメトリが変数的に扱えて、その生成を代数的に扱えることがこれでわかったと思います Relation between k-vector and Geometry

Slide 58

Slide 58 text

アンチウェッジ積とIntersection

Slide 59

Slide 59 text

補数 k-vector に対して、ウェッジ積をとると最大のグレードのn-vectorになる を の補数 Complementと呼びます ただし、ウェッジ積は反交換則を持つので補数も左右を考える必要がある (符号が違うぐらいなので本質は変わらない) Complement u u u u ∧ = u e ​ 123...n u ∧ = u e ​ : 123...n 右補数 ​ ∧ u u = e ​ : 123...n 左補数

Slide 60

Slide 60 text

4次元同次座標系での補数 最大のグレードを持つk-Vectorはアンチスカラーと呼び と表記します 足りてない基底を組み合わせたk-ectorが補数となる Example Complement in 4D Homogeneous Coordinate I e ​ = 1234 I ​ = e ​ 1 e ​ 234 ​ = e ​ 23 e ​ 14 ​ = e ​ 123 e ​ 4 ​ = e ​ 1234 1

Slide 61

Slide 61 text

補数の幾何的関係性 補数も一つのジオメトリとして見なすことができる k-vector complement 0-vector(スカラー) 4-Vector(アンチスカラー) 1-vector(点) 3-Vector(平面) 2-vector(直線) 2-Vector(直線) 3-vector(平面) 1-Vector(点) 4-vector(アンチスカラー) 0-Vector(スカラー) 各ジオメトリは対となるジオメトリを補数として持っている Geometric Relation of Complement

Slide 62

Slide 62 text

アンチウェッジ積 ウェッジ積に対して、対となるような演算アンチウェッジ積というのが定義される Example Antiwedge Product a ∨ b = ​ ∧ a b e ​ ∨ 1234 e ​ = 1 e ​ 1 e ​ ∨ 321 e ​ = 42 e ​ 2 e ​ ∨ 412 e ​ = 321 e ​ 12 e ​ ∨ 1 e ​ = 423 1

Slide 63

Slide 63 text

アンチウェッジ積は何を表すか? ウェッジ積とアンチウェッジ積はドモルガンの法則のような関係がある (雑に考えて)集合で例えれば 補数は補集合 ウェッジ積は和集合 アンチウェッジ積は積集合 What Antiwedge Product represent? = a ∨ b ∧ a b = a ∧ b ∨ a b

Slide 64

Slide 64 text

アンチウェッジ積は何を表すか? 定義の式を分解して考える。例として平面 と直線 のアンチウェッジ積の結果はどうなるか? は点、 は線を表す の結果は平面 は点 何らかの点を返す演算となっている What Antiwedge Product represent? g l g ∨ l = ​ ​ ∧ g l ​ g l ​ ∧ g l ​ ​ ∧ g l

Slide 65

Slide 65 text

アンチウェッジ積は何を表すか? アンチウェッジ積の集合的な性質を考えると出てきたものは平面と直線の積集合的な性質を持つジオメトリと推測 「アンチウェッジ積は2つのジオメトリの共通部分のジオメトリを抜き出す演算」 What Antiwedge Product represent?

Slide 66

Slide 66 text

平面と直線のアンチウェッジ積の結果は何? そういうことで、平面 と直線 のアンチウェッジ積のアンチウェッジ 積について実際に計算すると この点 が表す座標は平面 と直線 の衝突点の座標に一致 する アンチウェッジ積はIntersectionを表現できる! What’s Result of Antiwedge Product between Plane and Line? g l p = g ∨ l ​ ​ g ∨ l = (m ​ n ​ − m ​ n ​ + v ​ h)e ​ y z z y x 1 + (m ​ n ​ − m ​ n ​ + v ​ h)e ​ z x x z y 2 + (m ​ n ​ − m ​ n ​ + v ​ h)e ​ x y y x z 3 − (v ​ g ​ + v ​ g ​ + v ​ h)e ​ x x y y z 4 (34) (35) (36) (37) p g l

Slide 67

Slide 67 text

平面同士でのアンチウェッジ積は? 他にも… 平面 のアンチウェッジ積はPlane同士の交線 が  現れる 確かに「アンチウェッジ積は2つのジオメトリの共通部分のジオメ トリを抜き出す演算」であることがわかる What’s Result of Antiwedge Product between Plane and other Plane? g ​ , g ​ 1 2 l g ​ ∨ 1 g ​ = 2 l

Slide 68

Slide 68 text

アンチウェッジ積のIntesection表現 だからと言って別にあらゆるジオメトリの衝突がそう表現できるかは別 平面、直線、点というPrimitiveなものしか考えていない 球とかは共形空間を考えなくてはいけない Triangleはアルゴリズムとして判定する必要がある 平面との衝突判定後、トライアングル内にあるかウェッジ積で計算 とは言え一般化された形で表現されるのは面白い Intersection Presentation by Antiwedge Product

Slide 69

Slide 69 text

まとめ PGAとはジオメトリを代数的に取り扱えるようにした数学の 分野 ジオメトリの表現、操作をわずかな演算子で定義できるよう になる Intersectionの演算を考えることもできる 一般的な次元にも拡張可能 理論的にはとてもシンプルに記述可能 (理解しやすいとは言っていない) Summery

Slide 70

Slide 70 text

おわり ここまでの話はほんの一端(教科書の1割も行っていない) 更に様々な幾何的な変換を一般化していく 大変だが知ってみるとなんだか面白いのでやってみて下さい 数学的な理解が深まったので勉強としてはいいかも C++ライブラリが公開されている https://github.com/EricLengyel/Terathon-Math- Library End

Slide 71

Slide 71 text

参考資料 Projective Geometric Algebra Projective Geometric Algebra Illumination, Eric Lengyel Geometric Algebra for Computer Science, Leo Dorst, Daniel Fontijne, Stephen Mann A HISTROY OF VECTOR ANALYSIS, Michael J. Crowe 幾何学と代数系, 金谷健一 著 古典力学の形成, 山本義隆 著 四元数の発見, 矢野忠 著 Reference

Slide 72

Slide 72 text

Appendix

Slide 73

Slide 73 text

直線と点を含む平面 3点 を含む平面の法線 は次のように表示される また、高さ については を使えば Plane including Line and Point p, q, r n n = (q − p) × (r − p) = (q − p) × r − q × p h n h = −n ⋅ r

Slide 74

Slide 74 text

直線と点を含む平面 ここで を通る直線 のプリュッカー座標( )を用いると法線は と書き換えることができる。また、高さについては という形で、直線 と点 の座標によって表示することができる。 はこの結果の成分を全て係数として持っていることが分解すれば分かる。 Plane including Line and Point p, q l m, v n = v × r + m h = −(v × r + m) ⋅ r = −m ⋅ r l r l ∧ r