AutoCADによる楽しい数学
 ホームページの内容目次に戻る  追跡曲線について

追跡曲線の話題
(Equiangular Spiral)


多角形のコーナーにいる犬が互いの尻尾を追いかける--等角螺旋

このページにあるアニメーションのリスト(ハイパーテキストをクリックするとアニメーションがみられます。)
ここにもどるにはブラウザーの"Back" ボタンを使う。

等角螺旋 - ズームビュー >
螺旋は何処までも続く

i
正三角形
正三角形の頂点から出発

i
正方形
正方形の頂点から出発

i
正五角形
正五角形の頂点から出発
i
正六角形
正六角形の頂点から出発
i

[3] では、等角螺旋について次のように述べている:
4匹の犬が正方形の中庭(ABCD) 200 ft x 200 ft の隅にそれぞれ座っている。 犬は各々の右側の隅の犬を追いかけるように教えてある。 Aの隅の犬はBの隅犬を、Bの犬はCを、、、20ft/秒の一定スピードで追いかける。

A,B,C,D からスタートして、ある時間が経った犬の位置を A',B',C',D' とする。 左右対称であるから、A'B'C'D' も正方形で各犬の運動方向は一定の角度、即ち中庭の中央から犬を結ぶ線との角が 45°となることは明らかである。 (α = 45°)
犬(A)の方向は犬(B)の方向に対し垂直であるから、犬(A)は毎秒20 ft追いつく。 よって、10 秒後の犬(A)と犬(B)の距離はゼロになる。
************ spiral_model.dwg *************
次へ進む前に 4匹の犬の軌跡がどうなるかを見る。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。
   コマンド ラインから    ndogs  と実行命令をタイプする。
   多角形の辺数を入力:   4
   犬の歩幅を辺の長さAB の比%で指定:(既定値=1%) 既定値はそのまま[改行]キーを押す
   表示速度(1-100)を指定 1:非常に速い 100:非常に遅い (既定値 = 50) 既定値はそのまま[改行]キーを押す
   total_path =1.41421

ある曲線の任意の点での接線が、その接点に固定点から描く円の半径とで一定の角を成すような曲線を
等角螺旋(または対数螺旋)(Equiangular or Logarithmic Spiral)という。

この曲線は1638年にデカルト(Rene Descartes, 1596-1650) が力学の研究している時に発見した。
この曲線は Inverse, Pedal, Evolute といった変換をしても それがまた等角螺旋になるという特性(self-reproduction)を
有することがベルヌーイ (James(Jakob) Bernoulli, 1654 - 1705) の研究によって明らかにされた。
ベルヌーイは この研究をとても誇りにしていたので 彼の墓に  "Eadem mutata resurgo" 
("I shall arise the same, though changed") "変化はしても、同じものに生まれかわる。"
ということばと共に、この曲線を彫るように頼んだ。

等角螺旋の特性と公式

図中において、 cot a = MQ/MP
 (但し MQ = dr , MP = r dθ)
よって cot α = dr/rdθ    または    cot α dθ = dr/r
ここで q に関して積分すると
    loger = θ cot α + loger0
  (r0は θ = 0 の時の r の値)
これは次のように書くことができる loge(r/r0) = θ cot α
    or   r = r0 e θ cot α
(ここでの ∠θ は時計回りにはかる)
************ equiangular_spiral_def.dwg *************
この例では、唯一わかっていて参照できる半径はOA (= 1.0)である。
それ故 r0= OA として、線分OA から時計回りで角度θ を取ると、 方程式は cot α = 1 であるから
     r = e と簡素化できる。

(1) 全ての半径は一定の角度(α)で曲線によって切断される。

(2) 円弧の長さは半径に定数 S = R/cos α を掛けたもの。
  円弧の長さ   ds   =   (r2 + (dr/dθ)2)(1/2)dθ   =   (1 + r2(dθ/dr)2)(1/2) dr
            = (1 + (tan α)2)(1/2)dr    =   (1/cos α)dr
よって、円弧の長さは r = 0 (螺旋の中心) から半径 R = R/cos α までである。
この正方形の場合、総円弧長 = OA/cos α = 1.0/cos(45) = √2 = 1.41421356...

(3) 互いに等しい角度での半径の長さは等比数列を構成する。

等角螺旋曲線における更なる研究

この図は、曲線 r = e-q がどのように見えるかを示している。

この曲線はx と y 軸をP1,P2,P3,...で切断する。
そこで原点からの距離を図中で計ると
OP1 = 0.455488, OP2 = 0.094687, OP3 = 0.019683
よって OP1/OP2 = OP2/OP3 = 4.8105 = eπ/2
これは OP3P2 と OP2P1 が相似であることを意味する.

即ち OP3P2 を時計回りに90度回転させ  スケールを eπ/2 だけ
拡大すると、これら2つの曲線部分は重なり同一のものになる。

このことは、図面を表示して拡大し、曲線の一部分を
コピーして90度回転し、そして尺度を4.8105で拡大すれば確められる。
*********** equiang_spiral.dwg ************
これは上に述べた特性(3)である。 他の特性についてもこの図面で確かめられる。自分で色々試してみてください。
この螺旋を中心の周りにズームしながら見ていくと等角螺旋 はいつまでも 続く曲線であることがわかる。

そのことを示したのが等角螺旋 - ズーム ビュー のアニメーションである。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。

   コマンド ラインから    draw_equiangular_spiral  と実行命令をタイプする。
-------------------------------------------------------------------------------------

同様の追跡パターンは他の正多角形でも作成できる。

3匹の犬の場合

ここをクリックしてアニメーションを見る。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。

   コマンド ラインから    ndogs  と実行命令をタイプする。 
   次に多角形の辺数を入力 :   3

  ∠a = p/6
******************** 3dogs.dwg ********************

4匹の犬の場合

ここをクリックしてアニメーションを見る。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。

   コマンド ラインから    ndogs  と実行命令をタイプする。
   次に多角形の辺数を入力 :   4

  ∠a = p/4
******************** 4dogs.dwg ********************

5匹の犬の場合

ここをクリックしてアニメーションを見る。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。

   コマンド ラインから    ndogs  と実行命令をタイプする。
   次に多角形の辺数を入力 :   5

  ∠a = 3p/10
******************** 5dogs.dwg ********************

6匹の犬の場合

ここをクリックしてアニメーションを見る。

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。

   コマンド ラインから    ndogs  と実行命令をタイプする。
   次に多角形の辺数を入力 :   6

  ∠a = p/3
******************** 6dogs.dwg ********************

バリエーション

正方形の4隅 (A, B, C, D)から始める追跡のケースを三次元に拡張して考えてみよう。
A, B の二点と C, D の二点 が異なる高さにあるとして 追跡をさせた結果の平面図と 少し横から
見た場合を次にしめした。
4dogs_3d_planview.dwg
4dogs_3d_planview.jpg
Cardioid Model
二次元表示したアニメーション

i
4dogs_3d.dwg
4dogs_3d.jpg
Deltoid Model
三次元表示したアニメーション

i

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。
   コマンド ラインから    4dogs_3d  と実行命令をタイプする。
layer_color_test を使って 画層(layer)の色を設定する。

Bob Brill の Vortex

[7] の中では、 Bob Brill による 追跡曲線を使った アート (なずけて 渦巻き(Vortex))が紹介されている。
それは 3個の同心正方形の角(全部で 12 箇所ある) から 12匹の犬が隣の犬の後ろを追いかけるというシナリオを設定したとき
に得られる 追跡曲線である。下に示す最初の図がそれである。
筆者は単なる遊び心から Microsoft の Photoeditor を使って "Negative" と "Despeckle" のオプションを実行してみた。
その結果と並べて 以下に しめす。

白黒 で表した場合 のアニメーション

vortex_mono.dwg
vortex_mono.jpg
Bob Brill's "Vortex"

i
Edited using "Negative" option vortex_mono_negative.jpg
After "Negative" process

i
Edited using "Despeckle" option vortex_mono_despeckle.jpg
After "Despeckle" process

i

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。
   コマンド ラインから    vortex_mono  と実行命令をタイプする。
全てのlayer の色は白に設定されている。 

線に 異なる色を付け加えた場合

筆者は更に これに色を加えることにした。12匹の犬がいるのであるから それぞれを結ぶ線を異なる色で表すことを試みた。

そのためには 上述のプログラムと同じことを実行する前に set_layer_testコマンドを使って
全てのlayerの色を設定しておけばよい。
そして  Microsoft の Photoeditor を使って "Negative" と "Despeckle" のオプションを実行してみた。
その結果と並べて 以下に しめす。

それぞれの犬に異なる色 を付けた場合 のアニメーション

vortex_color_inc.dwg
vortex_2.jpg
Bob Brill's "Vortex"

i
Edited using "Negative" option vortex_2_negative.jpg
After "Negative" process

i
Edited using "Despeckle" option vortex_2_despeckle.jpg
After "Despeckle" process

i

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。
   コマンド ラインから    vortex_color  と実行命令をタイプする。

POLYLINE で 置き換えた場合

今度は 或る時点での全ての犬を一つの色で結ぶことにした。
そして 前回と同様に Microsoft の Photoeditor を使って "Negative" と "Despeckle" のオプションを実行してみた。
その結果と並べて 以下に しめす。

polyline を使った場合 のアニメーション

vortex_pline_inc.dwg
vortex_pline_inc.jpg
Bob Brill's "Vortex"

i
Edited using "Negative" option vortex_pline_negative.jpg
After "Negative" process

i
Edited using "Despeckle" option vortex_pline_despeckle.jpg
After "Despeckle" process

i

この図面とアニメーションの作成方法:
   プログラム brocard.lsp を   (load "brocard") でロードする。
   コマンド ラインから    vortex_pline  と実行命令をタイプする。

幅の広い線に置き換えた場合

POLYLINE の line width を 0.0 から 0.3にすると 全ての線分が重なり合って隙間がなくなる。
線の色は  layer1 から layer120 までの 画層の番号で決まっているから、数字の小さいほうを表にするか
裏にするかによって 全体のイメージがまったく ことなってくる。
下の最初の図は inc_order のコマンドを使って 数字の大きい画層を表にしたものである。
その隣は逆に dec_order の コマンドで 数字の小さな画層を表にしたものである。
最後の図は layer_color_test を使って 色の配分を変えた結果である。

vortex_widepline_inc.dwg
vortex_widepline_inc.jpg
Bob Brill's "Vortex"

i
vortex_widepline_dec.dwg
vortex_widepline_dec.jpg
Bob Brill's "Vortex"

i
vortex_widepline_dec2.dwg
vortex_widepline_dec2.jpg
Bob Brill's "Vortex"

i

参考文献

  1. Wells, David: The Penguin Dictionary of Curious and Interesting GEOMETRY. London,England: Penguin Books, p.67 & 201, 1991.(Out of print)

  2. Yates,Robert C. : A Handbook on Curves and their Properties. J.W.Edwards,Ann Arbor, p 170 & 206, 1947.

  3. Lockwood,E.R. : A Book of Curves. Cambridge Univ.,London, p.99, first published in 1961.

  4. Ogilvy,C.S. : Excursions in Geometry. Dover, p. 13,1990. Originally published by Oxford in 1969.

  5. Ogilvy,C.S. : Excursions in Mathematics. Dover, p. 83 & 148,1994. Originally published by Oxford in 1956.

  6. Steinhaus,H.: Mathematical Snapshots. Dover, p. 111, 1999. Originally published by Oxford in 1983.

  7. Peterson,Ivars: Fragments of Infinity, John Wiley and Sons, New York, 2001.


  ホームページの内容目次に戻る  追跡曲線について

質問、問い合わせは 筆者 岩本 卓也 宛てにお願いします。

Last Updated Aug-15, 2006

Copyright 2006 Takaya Iwamoto   All rights reserved.