読者です 読者をやめる 読者になる 読者になる

反転変換(円に関する反転)について(3)

f:id:shspage:20170419192135p:plain

上の図は、真ん中の「1」を囲んでいる四角形のような形を、 四つの辺(円弧)に関してそれぞれ反転して「2」の位置に移し、 さらにそれを「3」・「4」の位置に反転して移し、… という手順で描かれています。

f:id:shspage:20170419192247p:plain

このような図を描くために必要な決まりごとは、 これらの辺に使われている円弧を、 外側の円周と垂直に交わる円の一部とすることです。 *1

双曲幾何学のモデルの1つであるポアンカレ円板では このような円弧が「直線」という扱いになります。(以下、双曲直線という。)

ネットを hyperbolic tessellation, hyperbolic tiling などで画像検索すると似たような感じの図がいろいろ出てきます。

円板の中に表されている双曲平面とは何か?ということから 調べていくと気が遠くなってくるのですが、

とりあえず上のような図を描くために必要なのは、 この双曲直線、要するに円弧を作図する方法です。

双曲直線を作図する

f:id:shspage:20170419192256p:plain

円の内部の2点を通る双曲直線は、片方の点を円に関して反転し、 これらの3点を通る円を作図することで描けます。

f:id:shspage:20170419192301p:plain

また、2点を通る双曲直線に関して別の1点を反転させる場合は、 まず2点を通る双曲直線を取得し、それに関して別の1点を反転変換するという 処理になります。

Illustrator用のサンプルスクリプトを Gist に置きました。

Illustrator:ポアンカレ円板上での反転関連 · GitHub

内部処理に関しては以下の過去記事で書いています。
反転 →「 反転変換(円に関する反転)について(1) - s.h's page
2点をつなぐ円弧 →「 2点をつなぐ弧を描く - s.h's page

最初の図も、このスクリプトを使って点を1つずつ反転しては 円弧でつないで、という地道な作業によって作ったのですよ。 *2

もっと複雑なのを描こうと思ったら スクリプトで全部やらせる方向になるでしょう。

参考文献

上の双曲直線の作図方法は「作図で身につく双曲幾何学」(阿原一志 著、共立出版 2016) という本に掲載されていたものです。
ネットで双曲幾何学について調べていていまいち要領を得なかったのですが、 この本では作図から入るので感覚的にわかりやすかったです。
(※ 基本を抑える感じの内容なので、冒頭の図のようなものの作図は扱われていません。)

作図で身につく双曲幾何学: GeoGebraで見る非ユークリッドな世界 | 阿原 一志 |本 | 通販 | Amazon

*1:最初の点の配置をどうするかということもあるのですが、 これについては私もまだ曖昧な部分があるので、別の機会にします。

*2:線の部分は右の1/4作ってから回転して複製。数字はサンプルにあるパスごと反転するやつを使用。