■アルベロス円列の中心(その6)

 メビウス変換

  w=(z+a)/(az+1)

の逆変換は

  z=(−w+a)/(aw−1)

である.

  zx=((−x+a)(ax−1)−ay^2)/Δ

  zy=−y(a(−x+a)+(ax−1))/Δ

  Δ=(ax−1)^2+(ay)^2

 w=x+yiとおくと

  |w−c|=r   (円)

のときは

  x=rcosθ+cx

  y=rsinθ+cy

で与えられる.

 円全体をメビウス変換で移すと描画に時間がかかるが,直径の両端に写像される2点を見つけることは難しい.そこで,4点

  (r+cx,cy),(−r+cx,cy),(cx,r+cy),(cx,−r+cy)

だけをメビウス逆変換で移し,そこから4点を通る円の中心と半径を計算する.

===================================

 鎖の間の連結する小円の半径を計算するには,

  R=1

  r=(1−sin(π/n))/(1+sin(π/n))

  x0=(R+r)/2・cos(2πi/n+α)

  y0=(R+r)/2・sin(2πi/n+α)

として,4点を

  x=x0+(R−r)/2:y=y0→(zx1,zy1)

  x=x0−(R−r)/2:y=y0→(zx2,zy2)

  x=x0:y=y0+(R−r)/2→(zx3,zy3)

  x=x0:y=y0−(R−r)/2→(zx4,zy4)

 4点を通る円の中心と半径は

  H1=zx2−zx1,H2=zy2−zy1

  H3=zx4−zx3,H2=zy4−zy3

  H5=((zx2−zx1)^2+(zy2−zy1)^2)/2

  H6=((zx4−zx3)^2+(zy4−zy3)^2)/2

として

  X1=(H4H5−H2H6)/(H1H4−H2H3)

  Y1=(H1H6−H3H5)/(H1H4−H2H3)

  r1^2=(X1−zx1)^2+(Y1−zy1)^2=・・・=(X1−zx4)^2+(Y1−zy4)^2

で与えられる.

 簡単な形にはならないが,複素数のまま計算した方がエレガントかもしれない.

===================================