TDCC LABORATORY
TDCC 研究室


   HOME ENGLISH                                         

ハート形の曲線 II b

山本 信雄


本ページの図形は自由にコピーして自由にご使用できます。

1.   はじめに

    ハート形曲線は  Heart Curve - Mathematische Basteleien、 および、First heart Curve - Wolfram|Alpha、および、 Heart Curve -- from Wolfram MathWorld   のサイトに代表して見られます。
    ここでも、 ハート形曲線 II (こちら ハート形) の「第3節 方法2」と同様にカージオイドからハート形に変形することを試みますが、一般的化して扱い、 ハート形曲線 II の「第3節 方法2」の中で与えた位相角の変換式(9b)式の代わりに、逆三角関数などを用いた式に置き換えてみます。

2.   基本式

    カージオイド曲線はMasasi Sanae (早苗雅史)氏のサイト、 および、Wolfram Math World に紹介されていますが、 その形の縦と横を入れ替えたときの方程式は次のように表されます。
           ,                       (1)
ただし、は動径、は位相角を示します。

    ハート形曲線Ⅱの「第3節 方法2」と同様に、カージオイドの底に角度を付けるような位相角の変換を、 カージオイド(図1)の位相角から ハート形曲線(図2)の位相角に、図3に表されるように行います。 そこで、この逆の変換関数をとして次式を定義します。
           .                       (2)

図1  カージオイド
図2  ハート形曲線
図3  位相角からへの変換

    こうして、カージオイドの底に角度をなすように変換します。
    綺麗きれいなハートに形にするために、もう1種の変換の強さを表す係数と 縦方向に伸縮する係数座標表示にする次の変換式に組み入れます。
           ,                         (3a)
および、
           .                       (3b)

3.   変換関数に逆三角関数を用いた場合

    変換関数に逆三角関数と直線の式 の合成を用いて次のように構成してみます。
           ,                       (4)
ここに、は逆三角関数の配分率、は直線の式の配分率を示し、いわゆる変換の強さを示す任意の係数と考えます。 ただし、図3に見られるようにには周期性がなく、の範囲にのみ適用されます。
    こうすることで、以下に示すように、ハート形曲線Ⅱの「第3節 方法2」に比較してハートの上の切れ込みが穏やかなハート形曲線が得られます。 しかし、ハートの下のとがりが長く流れる傾向にあります。

    (1)式、(2)、(3a)、(3b)、および、(4)式を計算することにより、ハート形曲線の 座標が求められます。 こうして得られた図形の例を図4から図19に示します。 ただし、一貫してとしました。 理由は、係数はハートの大きさのみに関係し、ハートの形に無関係だからです。

図4
図5a

図5b
図5c

図6a
図6b
図6c

図6d
図6e
図7a

図7b
図7c
図7d

図8a
図8b
図8c

図8d
図9a
図9b

図9c
図9d
図9e

図10
図11a
図11b

図11c
図11d
図12a

図12d
図12c
図12d

図12f
図13a
図13b

図13c
図13d
図13e

図14a
図14b
図14c

図14d
図14e
図14f

図14g
図15a
図15b

図15c
図15d
図15e

図15f
図16a
図16b

図16c
図17a
図17b

図17c
図17d
図17e

図18a
図18b
図18c

図18d
図18e

図18f
図18g


    上図を着色すると次のようです。

図4 図5a 図5b 図5c 図6a 図6b 図6c 図6d 図6e 図7a 図7b 図7c 図7d 図8a 図8b 図8c 図8d 図9a 図9b 図9c 図9d 図9e 図10 図11a 図11b 図11c 図11d 図12a 図12d 図12c 図12d 図12f 図13a 図13b 図13c 図13d 図13e 図14a 図14b 図14c 図14d 図14e 図14f 図14g 図15a 図15b 図15c 図15d 図15e 図15f 図16a 図16b 図16c 図17a 図17b 図17c 図17d 図17e 図18a 図18b 図18c 図19a 図19b 図19c 図19d

上図をアニメーションで示しますと次のようです。 なお、画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。



    これ以外にも別方法で得られるハート形がハート形曲線Ⅱ (こちら ハート形2b)にあります。

    以上、ハート形曲線を描く元のデータを集めると、ハート形曲線が存在する各パラメータ および の範囲が分かります。これを図19に示します。

図19a ハート形曲線が存在する各パラメータ の範囲
ピンク色が存在範囲で、複数のドット点がハート形曲線を描かせたときのデータ点



図19b ハート形曲線が存在する各パラメータ の範囲
ピンク色が存在範囲で、複数のドット点がハート形曲線を描かせたときのデータ点



    (1)式、(2)、(3a)、(3b)、および、(4)式を数値計算して1個のハート形曲線を得るための C++ プログラムはこちら ハート形曲線群の計算プログラム_2b_1です。 画面表示のプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
    次に、 C++ システム・ファイル上の「ファイル」の中の 「新規作成」をクリックすると、編集画面が現れますが、 この画面に上記コピーしたプログラムを貼り付けます。場合によっては編集も行います。そして、 「ビルド」をクリックすると実行ファイルが作成されます。 さらに、「実行」をクリックすることにより、上記どちらのプログラムでも、 「heart_curve_2b_1.txt」という名のテキストファイルが作られて、 計算されたデータ(ハート形曲線上の各 座標点の座標データ)が格納されます。
    次に、このテキストファイルに格納されたデータをエクセルファイルに移し変えます。それには、エクセルファイルの 「外部データの取り込み」機能で行います。 ただし、ここに紹介した計算プログラムの場合、テキストファイルに保存される データ間の仕切りはカンマ()で指定してありますので、 「外部データの取り込み」にはこれを選択します。
    最後に、エクセルファイルに移された各列の x-y 座標データ全てをドラッグした後に、エクセルファイルにある 「グラフ ウィザード」をクリックして、 その中の「散布図」を選び、スムーズなカーブになる絵図をクリックするとハート形曲線が描かれます。


    ハート形以外の曲線も次のように得られます。

図20a
図20b

図20c
図20d
図20e

    上図を着色すると次のようです。
図20a 図20b 図20c 図20d 図20e


4.   変換関数に位相角をせまめた逆三角関数を用いた場合

    前節では、ハートの下のとがりが長く流れる傾向にあります。この傾向を修正してみます。
    前節で用いた逆三角関数の位相幅を1周期いっぱいのに取っていましたが、ここでは、それよりせまい、 (ただし、)に取ることにします。すると、前節の(4)式に代えて、次式の変換式を使うことになります。
           ,                       (5)
ただし、
    なお、のとき(5)式は(4)式に移行する。

    (1)式、(2)、(3a)、(3b)、および、(5)式を計算することにより、ハート形曲線の 座標が求められます。 こうして得られた図形の例を図21から図36に示します。ただし、一貫してとしました。 理由は、係数はハートの大きさのみに関係し、ハートの形に無関係だからです。

図21
図22a
図22b

図22c
図23a
図23b

図23c
図23d
図23e

図23f
図24a
図24b

図24c
図24d
図24e

図25a
図25b
図25c

図25d
図25e
図25f

図25g
図26
図27a

図27b
図27c
図27d

図28a
図28b
図28c

図28d
図28e
図29a

図29b
図29c
図29d

図30a
図30b
図30c

図30d
図30e
図30f

図31a
図31b
図31c

図31d
図31e
図31f

図32a
図32b
図32c

図32d
図33a
図33b

図33c
図34a
図34b

図34c
図34d
図34e

図34f
図35a

図35b
図35c


    上図を着色すると次のようです。
図21 図22a 図22b 図22c 図23a 図23b 図23c 図23d 図23e 図23f 図24a 図24b 図24c 図24d 図24e 図25a 図25b 図25c 図25d 図25e 図25f 図25g 図26 図27a 図27b 図27c 図27d 図28a 図28b 図28c 図28d 図28e 図29a 図29b 図29c 図29d 図30a 図30b 図30c 図30d 図30e 図30f 図31a 図31b 図31c 図31d 図31e 図31f 図32a 図32b 図32c 図32d 図33a 図33b 図33c 図34a 図34b 図34c 図34d 図34e 図35 図36a 図36b 図36c

上図をアニメーションで示しますと次のようです。 なお、画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。



    これ以外にも別方法で得られるハート形がハート形曲線Ⅱ (こちら ハート形2b)にあります。

    以上、ハート形曲線を描く元のデータを集めると、ハート形曲線が存在する各パラメータ および の範囲が分かります。 これを図36に示します。なお、 は 0.95 から 0.98 の範囲で、ほぼ固定です。

図36a ハート形曲線が存在する各パラメータ の範囲
ピンク色が存在範囲で、複数のドット点がハート形曲線を描かせたときのデータ点。
なお、 は 0.95 から 0.98 の範囲で、ほぼ固定です。



図36b ハート形曲線が存在する各パラメータ の範囲
ピンク色が存在範囲で、複数のドット点がハート形曲線を描かせたときのデータ点。
なお、 は 0.95 から 0.98 の範囲で、ほぼ固定です。


    (1)式、(2)、(3a)、(3b)、および、(5)式を数値計算して1個のハート形曲線を得るための C++ プログラムはこちら ハート形曲線群の計算プログラム_2b_2です。 画面表示のプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
    次に、 C++ システム・ファイル上の「ファイル」の中の 「新規作成」をクリックすると、編集画面が現れますが、 この画面に上記コピーしたプログラムを貼り付けます。場合によっては編集も行います。そして、 「ビルド」をクリックすると実行ファイルが作成されます。 さらに、「実行」をクリックすることにより、上記どちらのプログラムでも、 「heart_curve_2b_2.txt」という名のテキストファイルが作られて、 計算されたデータ(ハート形曲線上の各 座標点の座標データ)が格納されます。
    次に、このテキストファイルに格納されたデータをエクセルファイルに移し変えます。それには、エクセルファイルの 「外部データの取り込み」機能で行います。 ただし、ここに紹介した計算プログラムの場合、テキストファイルに保存される データ間の仕切りはカンマ()で指定してありますので、 「外部データの取り込み」にはこれを選択します。
    最後に、エクセルファイルに移された各列の x-y 座標データ全てをドラッグした後に、エクセルファイルにある 「グラフ ウィザード」をクリックして、 その中の「散布図」を選び、スムーズなカーブになる絵図をクリックするとハート形曲線が描かれます。


5   変換関数に正接関数を用いた場合

    変換関数に正接関数関数と直線の式 の合成を用いて次のように構成してみます。
           ,                       (6)
ここに、は正接関数の配分率、は直線の式の配分率を示し、 いわゆる変換の強さを示す任意の係数と考えます。 は、正接関数を図3の境界に合わせるために導入した任意の定数で、原則として、
    (1)式、(2)、(3a)、(3b)、および、(6)式を計算することにより、ハート形曲線が下図のように得られます。ただし、一貫してとしました。 理由は、係数は閉曲線の大きさのみに関係し、その形に無関係だからです。

図37a
図37b
図37c

図37d
図37e
図37f

図37g
図37h
図37i

図37j
図37k
図37l

図37m
図37n

図37o
図37p


    上図を着色すると次のようです。
図37a 図37b 図37c 図37d 図37e 図37f 図37g 図37h 図37i 図37j 図37k 図37l 図37m 図37n 図37o 図37p

上図をアニメーションで示しますと次のようです。 なお、画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。





    (1)式、(2)、(3a)、(3b)、および、(6)式を数値計算して図37の曲線を得るための C++ プログラムはこちら 曲線の計算プログラム_2b_3です。 なお、計算された曲線の x-y 座標データは「heart_curve_2b_3.txt」という名のテキストファイルに格納されます。


6   変換関数に双曲線正接関数の逆関数を用いた場合

    変換関数に双曲線正接関数の逆関数と直線の式 との合成を用いて次のように構成してみます。
           ,                       (7)
ここに、は双曲線正接関数の逆関数の配分率、は直線の式の配分率を示し、 いわゆる変換の強さを示す任意の係数と考えます。 は、双曲線正接関数の逆関数を図3の境界に合わせるために導入した任意の定数で、の条件があります。
    (1)式、(2)、(3a)、(3b)、および、(7)式を計算することにより、ハート形曲線が下図のように得られます。ただし、一貫してとしました。 理由は、係数はハートの大きさのみに関係し、ハートの形に無関係だからです。

図38a
図38b
図38c

図38d
図38e
図38f

図38g
図38h
図38i

図38j
図38k
図38l

図38o
図38p
図38m


    上図を着色すると次のようです。
図38a 図38b 図38c 図38d 図38e 図38f 図38g 図38h 図38i 図38j 図38k 図38l 図38o 図38p 図38m

上図をアニメーションで示しますと次のようです。 なお、画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。





    (1)式、(2)、(3a)、(3b)、および、(7)式を数値計算して図38のハート形曲線を得るための C++ プログラムはこちら ハート形曲線の計算プログラム_2b_4です。 なお、計算されたハート形曲線の x-y 座標データは「heart_curve_2b_4.txt」という名のテキストファイルに格納されます。


7   変換関数にフェルミ分布関数の逆関数を用いた場合

    フェルミ分布関数は量子力学においてフェルミ粒子(電子など)が従う統計的なエネルギー分布関数で、次式で与えられます。
           ,                       (8)
ただし、は温度エネルギーで規格化したフェルミ粒子の規格化エネルギーを示します。
    この分布関数の逆関数が図3に近い形をしています。 こうして、変換関数にフェルミ分布関数の逆関数と直線の式 との合成を用いて次のように構成してみます。
           ,                       (9)
ここに、はフェルミ分布関数の逆関数の配分率、は直線の式の配分率を示し、 いわゆる変換の強さを示す任意の係数と考えます。 は、フェルミ分布関数の逆関数を図3の境界に合わせるために導入した任意の定数で、の条件があります。
    (1)式、(2)、(3a)、(3b)、および、(9)式を計算することにより、ハート形曲線が下図のように得られます。ただし 、一貫してとしました。 理由は、係数はハートの大きさのみに関係し、ハートの形に無関係だからです。

図39a
図39b
図39c

図39d
図39e
図39f

図39g
図39h

図39i
図39j


    上図を着色すると次のようです。
図39a 図39b 図39c 図39d 図39e 図39f 図39g 図39h 図39i 図39j

上図をアニメーションで示しますと次のようです。 なお、画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。





    (1)式、(2)、(3a)、(3b)、および、(9)式を数値計算して図39のハート形曲線を得るための C++ プログラムはこちら ハート形曲線の計算プログラム_2b_5です。 なお、計算されたハート形曲線の x-y 座標データは「heart_curve_2b_5.txt」という名のテキストファイルに格納されます。



~ブラウザの「戻る」で 前に開いたページに戻ります~

~または、下のボタンを押して HOME に戻ります~


HOME


updated: 2011.12.28, edited by N. Yamamoto
Revised in Jan. 10, 2012, Jan. 21, 2012, Jan. 31, 2012, Aug. 27, 2013, Jan. 10, 2014, Jan. 15, 2014, Feb. 06, 2015, Mar. 16, 2015, Dec. 20, 2015 and Jul. 23, 2016.