書籍「インドラの真珠: クラインの夢みた世界」に登場する図形や写像を、Python で描画するためのプロジェクトです。
このリポジトリでは、主に次のような対象を扱います。
- メビウス変換
- 円の像の計算
- ショットキー群に関連する円の配置
- ショットキー群の「ダンス」的な円の反復描画
- 円反転による図形の可視化
実装の中心は src/lib.py にあり、以下のような機能を提供しています。
MobiusTransformによる 1 次分数変換の表現- 点に対するメビウス変換
- 円に対するメビウス変換
- 固定点の計算
- 円反転の描画補助
- ショットキー円の像をたどる
schottky_dance - その結果を描画する
plot_schottky_dance
また、実行用スクリプトとして schottky_dance.py を用意しており、ショットキー円の図を表示できます。
src/lib.py- 数学的な処理と描画用ヘルパーをまとめたライブラリ
main.py- 円反転の図を表示する簡易エントリーポイント
schottky_dance.pyschottky_danceを使ってショットキー円の図を描画する実行スクリプト
pyproject.toml- 依存関係とプロジェクト設定
uv run main.pyuv run schottky_dance.py --depth 3--depth を大きくすると、より深い世代まで円をたどります。
このプロジェクトは、まだ発展途中です。 描画やショットキー群の処理は動き始めていますが、実際の書籍に出てくる設定に完全に合わせるには、まだ整理や拡張の余地があります。
- [ ] 実際のショットキー群の生成元を、書籍の設定に合わせて定義する
- [ ]
schottky_dance.pyのデモ用設定を本番設定に置き換える - [ ]
plot_schottky_danceの色分けやラベル表示を改善する - [ ] 円の像が直線になるケースの表示方法を整理する
- [ ] 画像保存モードを追加して、GUI を使わずに出力できるようにする
- [ ]
main.pyとschottky_dance.pyの役割分担を明確にする - [ ] README に依存関係のインストール手順を追加する
- [ ] 書籍中の他の図版を描画する関数を追加する
このリポジトリでは、複素解析・幾何・群作用の可視化を通じて、書籍の内容をプログラムで追体験できるようにすることを目指しています。