TDCC Laboratory
TDCC 研究室
  HOME ENGLISH                                       


花の形のグラフィック

山本 信雄

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

上図の画像の自動切り替え方法はこちら 画像の切り替え法を参考にしました。



1.   はじめに

    本サイトの別のページで取り扱った、カージオイドから作り出す「ハート形曲線  II」を花びらに応用して、ここに「花の形」をプログラミングにより作ることを試みます。そこでは2種の方法が書かれていますので、ここでも、その方法を踏襲して2種の方法を考えます。



2.   方法1
図1b  ハート形曲線 1
図1a  元のカージオイド

   方法1は、カージオイドの丸い底の位相角を単純に狭めて角度を形成して、花びらとなるハート形を作ることです。


2.1   花びらとなるハート形曲線の伸縮がない場合

   カージオイドから作り出す「ハート形曲線  II」の方法1で記述した元のカージオイドとそれから作り出されたハート形曲線の例を図1に示します。この形を土台となる中心円の周囲に周期的に配置して花の形を構成しようというものです。
   ハート曲線  IIの方法1で得られた式で、ここでも用いる式は次の(1)、(2)、および、(3)式です。
          ,                      (1)
ただし、

          ,                      (2)
ここに、

          .                      (3)

   こうして得られるハート形を中心円の周りに花びらとして配置するとします。配置する花びらの個数を とすると、次式のように、一周の角度を個数 で割った値を、花びらの底の基準角と考えることにします。
          .                      (4)

   以上は花びら1個だけの配置に過ぎません。周囲に配置する 個の花びらに番号 を付けることにすると、 番目の花びらの位相角は、花びらの底の基準角から推測して、(3)式の角度 をさらに だけ回転させればよい。すなわち、(3)式に を付加する次式とすればよい。
          .                      (5)

   以上で、配置する花びら 個を記述できますが、半径 c の円の周囲に花びらを配置するとすれば、全体の花の形の (x, y)座標は次の2式で得られます。
          .                      (6)
          .                      (7)

   (1)式、(2)式、(4)式、(5)式、(6)式、および、(7)式を計算することにより、花の形の (x, y)座標が求められます。こうして得られた図形の例を図2から図16に示します。ただし、 としました。

図2  n=1, c=0
図3  n=2, c=0
図4  n=3, c=0
図5  n=4, c=0

図6  n=5, c=0
図7  n=6, c=0
図8  n=7, c=0
図9  n=8, c=0

図10  n=1, c=2
図11  n=2, c=2
図12  n=3, c=2
図13  n=4, c=2

図14  n=8, c=2
図15  n=5, c=2
図16  n=6, c=2
図17  n=7, c=2

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図2 n=1, c=0図3 n=2, c=0図4 n=3, c=0図5 n=4, c=0図6 n=5, c=0図7 n=6, c=0図8 n=7, c=0図9 n=8, c=0図10 n=1, c=2図11 n=2, c=2図12 n=3, c=2図13 n=4, c=2図14 n=8, c=2図15 n=5, c=2図16 n=6, c=2図17 n=7, c=2


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



[2.1 の追記 I]   花びらを重ねる場合

   1個の花びらの幅、すなわち、花びらの底の基準角を大きくするとよい。この拡大率を として、(5)式に代えて次式を用います。
          .                      (A1)

   (1)式、(2)式、(4)式、(6)式、(7)式、および、(A1)式を計算して得られた図形の例を図A1から図A5に示します。ただし、 としました。

図A1  n=8, a=1, c=1, p=0.5
図A2  n=8, a=1, c=1, p=1
図A3  n=8, a=1, c=1, p=1.5
図A4  n=8, a=1, c=1, p=2
図A5  n=8, a=1, c=1, p=3

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

図A1図A2図A3図A4図A5


   (1)式、(2)式、(4)式、(6)式、(7)式、および、(A1)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム 1_overlapです。なお、逆正接関数は多価関数なので、どの値をとるかの注意が必要です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep. 21, 2012 に追記


[2.1 の追記 II]   各花びらの位相角と土台となる中心円の位相角を独立にする場合


   実際の花びらはその基部である花柄かへいが花床に幅狭はばせまつながっています。本稿のシミュレーションでは中心円に花びらが点で接していることに相当するでしょう。このためのシミュレーションを考えます。点で接するだけでなく、任意の角度幅で中心円に花びらが接することも含めて考えます。このためには、各花びらの位相角と土台となる中心円の位相角を独立に設定することが考えられます。
   先ず、各花びらが土台となる中心円に1点で接する場合は、土台となる中心円の位相角は の1点で定値となりますので、(6)、(7)式を使う代わりに次式を使います。ここに、 は中心円の半径です。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (A2)
          .                      (A3)
   以上を拡張して、各花びらが土台となる中心円に任意の広がり幅で接する場合を説明します。
   接する任意の広がり幅を、土台となる中心円の位相角で計って とします。すると、中心円の位相角は、上記のような定点ではなく、 のように とともに動くことになります。よって、(A2)、(A3)式を使う代わりに次式を使います。ただ、上記のように、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (A4)
          .                      (A5)
ここに、角度は1個の花びらが土台となる中心円を占める基本角で、一周の角度を個数 で割った値を示します。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (1)式、(2)式、(4)式、(5)式、(A4)式、および、(A5)式を計算して得られた図形の例を図A6から図A9に示します。ただし、 としました。

図A6  n=8, a=1, c=1, l=0
図A7  n=8, a=1, c=1, l=0.5
図A8  n=8, a=1, c=1, l=1
図A9  n=8, a=1, c=1, l=2

   (1)式、(2)式、(4)式、(5)式、(A4)式、および、(A5)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム a_independent_angleです。なお、逆正接関数は多価関数なので、どの値をとるかの注意が必要です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep. 30, 2012 に追記



2.2   花弁となるハート形曲線の伸縮がある場合


   この場合は、花びらの元となるハート形曲線(図1)の縦方向( y 方向)を伸縮率 を用いて、次の2式のように一度 (x, y) 座標に戻します。
          ,                      (8)
          ,                      (9)
ただし、位相角 は(3)式で与えられます。これを再び極座標に表示します。このときの動径と位相角は次の2式で与えられることになります。
          ,                      (10)
          ,                      (11)

   以上は元となる花びら1個の記述に過ぎません。この花びらを、半径 の周囲に配置することを考えます。(5)式を求めたときと同様に、 個の花びらに番号 を付けることにします。すると、 番目の花びらの位相角は、(11)式の角度をさらに だけ回転させればよい。すなわち、(11)式に を付加する次式を改めて位相角とすればよい。
          .                      (12)

   全体の花の形の (x, y)座標は、(6)および(7)式と同様に、次の2式で得られます。
          .                      (13)
          .                      (14)

   なお、元となるハート曲線(図1)の縦方向( y 方向)を伸縮した場合(伸縮率 が 1 でない場合 )は、各花びらの根元に隙間を生じますので、作図をする場合、この隙間を半径 の円弧で埋めるなどの工夫が必要になります。

   以上、(10)式から(14)式を計算することにより、花の形の (x, y)座標が求められます。こうして得られた図形の例を以下に示します。ただし、 としました。

図18  n=1, b=0.8, c=0
図19  n=2, b=0.8, c=0
図20  n=3, b=0.8, c=0
図21  n=4, b=0.8, c=0

図22  n=5, b=0.8, c=0
図23  n=5, b=0.5, c=0
図24  n=5, b=0.5, c=1
図25  n=5, b=0.5, c=2

図26a  n=5, b=1, c=2
図26b  n=5, b=1.2, c=2
図27a  n=6, b=0.8, c=0
図27b  n=6, b=0.5, c=0

図27c  n=6, b=0.5, c=1
図28  n=8, b=0.8, c=0
図29  n=8, b=0.5, c=0
図30  n=8, b=0.5, c=1

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図18 n=1, b=0.8, c=0図19 n=2, b=0.8, c=0図20 n=3, b=0.8, c=0図21 n=4, b=0.8, c=0図22 n=5, b=0.8, c=0図23 n=5, b=0.5, c=0図24 n=5, b=0.5, c=1図25 n=5, b=0.5, c=2図26a n=5, b=1, c=2図26b n=5, b=1.2, c=2図27a n=6, b=0.8, c=0図27b n=6, b=0.5, c=0図27c n=6, b=0.5, c=1図28 n=8, b=0.8, c=0図29 n=8, b=0.5, c=0図30 n=8, b=0.5, c=1


   (1)式から(3)式、および、(8)式から(14)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム 2です。なお、逆正接関数は多価関数なので、どの値をとるかの注意が必要です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。




[2.2 の追記 I]   花びらを重ねる場合

   1個の花びらの幅、すなわち、(11)式で与えられる角度 を大きくするとよい。この拡大率を として、(12)式に代えて次式を用います。
          .                      (B1)

   (8)式から(11)式、(13)式、(14)式、および、(B1)式を計算して得られた図形の例を図B1から図B8に示します。ただし、 としました。

図B1  n=8, a=1, b=0.8, c=1, p=0.5
図B2  n=8, a=1, b=0.8, c=1, p=1
図B3  n=8, a=1, b=0.8, c=1, p=1.5
図B4  n=8, a=1, b=0.8, c=1, p=2

図B5  n=8, a=1, b=1, c=1, p=0.5
図B6  n=8, a=1, b=1, c=1, p=1
図B7  n=8, a=1, b=1, c=1, p=1.5
図B8  n=8, a=1, b=1, c=1, p=2

   上図の前半部を着色しますと次のようです。

図B1 図B2 図B3 図B4


   (1)式から(3)式、および、(8)式から(11)式、(13)式、(14)式、および、(B1)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム 2_overlapです。なお、逆正接関数は多価関数なので、どの値をとるかの注意が必要です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep. 21, 2012 に追記

[2.2 の追記 II]   各花びらの位相角と土台となる中心円の位相角を独立にする場合

    前節の[2.1 の追記 II]と同様に考えることができます。従って、[2.1 の追記 II]と同様に以下のように記述できます。
   先ず、各花びらが土台となる中心円に1点で接する場合は、土台となる中心円の位相角は の1点で定値となりますので、(13)、(14)式を使う代わりに次式を使います。ここに、 は中心円の半径です。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (B2)
          .                      (B3)
   以上を拡張して、各花びらが土台となる中心円に任意の広がり幅で接する場合を説明します。
   接する任意の広がり幅を、土台となる中心円の位相角で計って とします。すると、中心円の位相角は、上記のような定点ではなく、 のように とともに動くことになります。よって、(B2)、(B3)式を使う代わりに次式を使います。ただ、上記のように、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (B4)
          .                      (B5)
ここに、角度は1個の花びらが土台となる中心円を占める基本角で、一周の角度を個数 で割った値を示します。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (1)式から(3)式、および、(8)式から(12)式、(B4)式、および、(B5)式を計算して得られた図形の例を図B9から図B12に示します。ただし、 としました。

図B9  n=8, a=1, b=0.5,
c=0.3, l=0
図B10  n=8, a=1, b=0.5,
c=0.3, l=0.5
図B11  n=8, a=1, b=0.5,
c=0.3, l=1
図B12  n=8, a=1, b=0.5,
c=0.3, l=2

   (1)式から(3)式、および、(8)式から(12)式、(B4)式、および、(B5)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム b_independent_angleです。なお、逆正接関数は多価関数なので、どの値をとるかの注意が必要です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 01, 2012 に追記


3.   方法2

方法2は、カージオイドの底に角度を形成するような位相角の変換式を適用して、花びらとなるハート形を作ることです。


3.1  花弁となるハート曲線を忠実に用いた場合

   カージオイドから作り出す「ハート曲線  II」の方法2で作り出したハート曲線の1例を図31に示します。この形を円の周囲に周期的に配置して花の形を構成しようというものです。


図31a  元のカージオイド
図31b  ハート曲線
図31c  位相角 から への変換

   ハート曲線  IIの方法2で得られた式で、ここでも用いる式は次の(15)、(16)、および、(17)式です。
          ,                      (15)
ただし、

          .                      (16)
          ,                      (17)
ただし、 は(15)式で変換された図31のハート曲線の位相角を示し、 は変換の強さを示す正の任意の係数と考えることにします。また、 は、より綺麗なハートに形にするためのもう1つの変換の強さを表す係数で、 は、ハート形を縦方向に伸縮して変形できる係数です。さらに、 は次式で与えられる元のカージオイドの動径の動径で、 はその位相角です。
          .                      (18)


図32  全体の花の形に対する位相角
と原点移動させたハート形の位相角との関係

   図31の原点をハート形のとがった底に移す必要があります。移動によって(16)式は変わりませんが、(17)式は次のように変更されます。
          .                      (19)
   新たな原点に対するハート形の動径と位相角(下に述べるCプログラム中では ff と表記)は次式で表されます。
          .                      (20)
          .                      (21)

   次に、半径 の円を中心に配置して、その周りに 個のハート形を配置するために、原点移動させたハート形の位相角を全体の花の形に対する位相角(下に述べるCプログラム中では fff と表記)に、図32に示すように、次の式で変換します。
          ,                      (22)
ただし、 番目の花びらに対応する番号です。


図34  の定義 2
図33  の定義 1

   改めて、花の形を与える直交座標表示は次の2式になります。
          .                      (23)
          .                      (24)

   の選び方を図33と図34の2通りを考え、それぞれに分けて取り扱いましょう。

3.1.1   図33を用いた場合

   この場合の最小角度と最大角度は本来の意味を持ちますが、そのそれぞれを、Cプログラム中でソフトウェア手法で求めます。この上で、(15)式から(24)式をコンピュータで計算し、図形ウィザードで描画すると以下に示すような例が得られます。ただし、 としました。


図35 n=1, b=1.2, c=0.5, d=1, e=0
図36 n=2, b=1.5, c=0.5, d=1, e=0
図37 n=3, b=1.2, c=0.5, d=1, e=0
図38 n=4, b=1.4, c=0.5, d=1, e=0

図39 n=5, b=1.5, c=0.3, d=1, e=0
図40 n=5, b=1.5, c=0.3, d=1, e=1
図41 n=5, b=2, c=0.5, d=1, e=0
図42 n=5, b=2, c=0.5, d=1, e=0.5

図43 n=5, b=2.2, c=0.7, d=1, e=0
図44 n=5, b=2.2, c=0.7, d=1, e=1
図45a n=5, b=3, c=0.9, d=1, e=0
図45b n=5, b=3, c=0.9, d=1, e=0.5

図46 n=5, b=1.8, c=0.8, d=1.2,
e=0.05
図47a n=6, b=2, c=0.5, d=1, e=0
図47b n=6, b=2, c=0.5, d=1, e=0.5
図48a n=8, b=2, c=0.5, d=1, e=0
図48b n=8, b=2, c=0.5, d=1, e=0.5

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

カタバミ

図35 n=1, b=1.2, c=0.5, d=1, e=0図36 n=2, b=1.5, c=0.5, d=1, e=0図37 n=3, b=1.2, c=0.5, d=1, e=0図38 n=4, b=1.4, c=0.5, d=1, e=0図39 n=5, b=1.5, c=0.3, d=1, e=0図39 n=5, b=1.5, c=0.3, d=1, e=0図41 n=5, b=2, c=0.5, d=1, e=0図42 n=5, b=2, c=0.5, d=1, e=0.5図43 n=5, b=2.2, c=0.7, d=1, e=0図44 n=5, b=2.2, c=0.7, d=1, e=1図45a n=5, b=3, c=0.9, d=1, e=0図45b n=5, b=3, c=0.9, d=1, e=0.5図46図47a n=6, b=2, c=0.5, d=1, e=0図47b n=6, b=2, c=0.5, d=1, e=0.5図48a n=8, b=2, c=0.5, d=1, e=0図48b n=8, b=2, c=0.5, d=1, e=0.5


   図33の定義に従い、(15)式から(24)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c1です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



[3.1.1 の追記 I]   花びらを重ねる場合

   1個の花びらの幅を大きく取るとよい。このためには、図32の直線の傾きを大きくすると実現できます。この拡大率を として、式の上では、(22)式において直線の傾きを 倍すればよく、(22)式に代えて次式を用います。
          .                      (CI1)

   (15)式から(21)式、(23)式、(24)式、および、(CI1)式を計算して得られた図形の例を図CI1から図CI5に示します。ただし、 としました。

図CI1  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=0.5
図CI2  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=1
図CI3  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=1.5
図CI4  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=2

図CI5  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=3
図CI6  n=12, a=1, b=2, c=0.1,
d=1, e=0.7, k=1, p=1.2

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

図CI1 図CI2 図CI3 図CI4 図CI5 図CI6 図CI6と比較

   (15)式から(21)式、(23)式、(24)式、および、(CI1)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c1_overlapです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep 22, 2012 に追記

[3.1.1 の追記 II]   各花びらの位相角と土台となる中心円の位相角を独立にする場合

   2.1 節の[2.1 の追記 II]や前節の[2.2 の追記 II]と同様に考えることができます。従って、[2.1 の追記 II]や[2.2 の追記 II]と同様に以下のように記述できます。

   先ず、各花びらが土台となる中心円に1点で接する場合は、土台となる中心円の位相角は の1点で定値となりますので、(23)、(24)式を使う代わりに次式を使います。ここに、 は中心円の半径です。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (CI2)
          .                      (CI3)
   以上を拡張して、各花びらが土台となる中心円に任意の広がり幅で接する場合を説明します。
   接する任意の広がり幅を、土台となる中心円の位相角で計って とします。すると、中心円の位相角は、上記のような定点ではなく、 のように とともに動くことになります。よって、(CI2)、(CI3)式を使う代わりに次式を使います。ただ、上記のように、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (CI4)
          .                      (CI5)
ここに、角度は1個の花びらが土台となる中心円を占める基本角で、一周の角度を個数 で割った値を示します。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (15)式から(22)式、(CI4)式、および、(CI5)式を計算して得られた図形の例を図CI7から図CI10に示します。ただし、 としました。

図CI7  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=0
図CI8  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=0.5
図CI9  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=1
図CI10  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=2.5


   (15)式から(22)式、(CI4)式、および、(CI5)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c1_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 01, 2012 に追記


3.1.2   図34を用いた場合


   この場合は、ハート形の最小、および、最大角度はハート形の底の角度で定義しますので、前項3.1.1 のそれらとは一般に食い違います。これらの角度は、解析的に次のように求められます。
          .                      (25)
          .                      (26)
   (15)式から(24)式、(25)式、および、(26)式をコンピュータで計算し、図形ウィザードで描画すると以下に示すような例が得られます。ただし、 としました。


図49 n=1, b=1, c=0.5, d=1, e=0
図50 n=2, b=1, c=0.5, d=1, e=0
図51 n=3, b=1, c=0.5, d=1, e=0
図52 n=4, b=1, c=0.5, d=1, e=0

図53 n=5, b=1, c=0.5, d=1, e=0
図54 n=5, b=1, c=0.5, d=1, e=1
図55 n=5, b=2, c=0.5, d=0.5, e=0
図56 n=5, b=2, c=0.5, d=0.5, e=1

図57 n=5, b=2, c=0.5, d=1, e=0
図58 n=5, b=2, c=0.5, d=1, e=1.5
図59a n=6, b=1, c=0.5, d=1, e=0
図59b n=6, b=2, c=0.5, d=1, e=0

図59c n=6, b=2, c=0.5, d=1, e=0.5
図60a n=8, b=1, c=0.5, d=1, e=0
図60b n=8, b=2, c=0.5, d=1, e=0
図60c n=8, b=2, c=0.5, d=1, e=0.5

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。


クローバーの若葉

図49 n=1, b=1, c=0.5, d=1, e=0図50 n=2, b=1, c=0.5, d=1, e=0図51 n=3, b=1, c=0.5, d=1, e=0図52 n=4, b=1, c=0.5, d=1, e=0図53 n=5, b=1, c=0.5, d=1, e=0図54 n=5, b=1, c=0.5, d=1, e=1図55 n=5, b=2, c=0.5, d=0.5, e=0図56 n=5, b=2, c=0.5, d=0.5, e=1図57 n=5, b=2, c=0.5, d=1, e=0図58 n=5, b=2, c=0.5, d=1, e=1.5図59a n=6, b=1, c=0.5, d=1, e=0図59b n=6, b=2, c=0.5, d=1, e=0図59c n=6, b=2, c=0.5, d=1, e=0.5図60a n=8, b=1, c=0.5, d=1, e=0図60b n=8, b=2, c=0.5, d=1, e=0図60c n=8, b=2, c=0.5, d=1, e=0.5


   図34の定義に従い、(15)式から(24)式、(25)式、および、(26)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c2です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



[3.1.2 の追記 I]   花びらを重ねる場合

   3.1 節前半の(15)式から(21)式、(23)式、(24)式、および、前出の[3.1.1 の追記]にある(CI1)式、さらに、上記の(25)式と(26)式がそのまま使えます。

    (15)式から(21)式、(23)式、(24)式、(CI1)式、(25)式、および、(26)式を計算して得られた図形の例を図CII1から図CII4に示します。ただし、 としました。


図CII1  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=0.5
図CII2  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=1
図CII3  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=1.5
図CII4  n=8, a=1, b=2, c=0.5,
d=1, e=0.5, k=1, p=2

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


図CII1図CII2図CII3図CII4

   (15)式から(21)式、(23)式、(24)式、(CI1)式、(25)式、および、(26)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c2_overlapです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep 22, 2012 に追記


[3.1.2 の追記 II]    各花びらの位相角と土台となる中心円の位相角を独立にする場合

   2.1 節の[2.1 の追記 II]や2.2 節の[2.2 の追記 II]、および、前節の[3.1.1 の追記 II]と同様に考えることができます。従って、[2.1 の追記 II]や[2.2 の追記 II]、および、[3.1.1 の追記 II]と同様に以下のように記述できます。
   先ず、各花びらが土台となる中心円に1点で接する場合は、土台となる中心円の位相角は の1点で定値となりますので、(23)、(24)式を使う代わりに次式を使います。ここに、 は中心円の半径です。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (CII1)
          .                      (CII2)
   以上を拡張して、各花びらが土台となる中心円に任意の広がり幅で接する場合を説明します。
   接する任意の広がり幅を、土台となる中心円の位相角で計って とします。すると、中心円の位相角は、上記のような定点ではなく、 のように とともに動くことになります。よって、(CII1)、(CII2)式を使う代わりに次式を使います。ただ、上記のように、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (CII3)
          .                      (CII4)
ここに、角度は1個の花びらが土台となる中心円を占める基本角で、一周の角度を個数 で割った値を示します。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (15)式から(22)式、(25)式、(26)式、(CII3)式、および、(CII4)式を計算して得られた図形の例を図CII5から図CII8に示します。ただし、 としました。


図CII5  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=0
図CII6  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=0.5
図CII7  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=1
図CII8  n=8, a=1, b=2, c=0.5,
d=1, e=0.4, k=1, l=2.5

   (15)式から(22)式、(25)式、(26)式、(CII3)式、および、(CII4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム c2_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 01, 2012 に追記


3.2   花弁となるハート曲線を簡略化した場合

   前節3.1はハート形の正確な形を保持するために、プロセスが込み入っています。そこで、前節の(22)式、および、図32の正確な位相角への変換を省いて、変換しない位相角を花の形の位相角として流用してみます。図31b で表される元の1個のハート形曲線の位相 から花形の1周する位相への変換を次ようにしました。それは、(22)式においてに、 に、に書き換えればよく、次式のようになります。
          ,                      (27)
ただし、 番目の花びらを指します。また、動径だけは(20)式の正確なプロセスに従います。これにより、ハート形の正確な描写は失われますが、花の形としては風情があります。位相角を用いるので、(23)、(24)式の代わりに次の2式を使います。
          .                      (28a)
          .                      (28b)

   (15)式から(20)式、(27)式、(28a)式、および、(28b)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図61 n=5, b=2, c=0.5, d=1, e=0
図61b n=5, b=2, c=0.5, d=1, e=0.5
図62 n=5, b=2, c=0.5, d=1, e=1
図63 n=5, b=2, c=0.7, d=1, e=0

図64 n=5, b=2, c=0.7, d=1, e=0.5
図65 n=8, b=2, c=0.1, d=1, e=0
図66 n=8, b=2, c=0.1, d=1, e=0.5

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図61 n=5, b=2, c=0.5, d=1, e=0図67b n=5, b=2, c=0.5, d=1, e=0.5図62 n=5, b=2, c=0.5, d=1, e=1 図63 n=5, b=2, c=0.7, d=1, e=0図64 n=5, b=2, c=0.7, d=1, e=0.5図65 n=8, b=2, c=0.1, d=1, e=0図66 n=8, b=2, c=0.1, d=1, e=0.5

   (15)式から(20)式、(27)式、(28a)式、および、(28b)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム dです。
  画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



[3.2 の追記 I]   花びらを重ねる場合

   3.1 節前半の(15)式から(20)式、および、上記の(27)式、(28a)式、および、(28b)式がそのまま使えます。

   (15)式から(20)式、(27)式、(28a)式、および、(28b)式を計算して得られた図形の例を図D1から図D5に示します。ただし、 としました。


図D1  n=8, a=1, b=2,
c=0.1, d=1, e=1, p=0.5
図D2  n=8, a=1, b=2,
c=0.1, d=1, e=1, p=1
図D3  n=8, a=1, b=2,
c=0.1, d=1, e=1, p=1.5
図D4  n=8, a=1, b=2,
c=0.1, d=1, e=1, p=2
図D4  n=8, a=1, b=2,
c=0.1, d=1, e=1, p=3

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

図D1 図D2 図D3 図D4 図D5

   (15)式から(20)式、(27)式、(28a)式、および、(28b)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム d_overlapです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep 22, 2012 に追記

[3.2 の追記 II]   各花びらの位相角と土台となる中心円の位相角を独立にする場合


   3.1

節前半の(15)式から(22)式、および、上記の(27)式がそのまま使えます。2.1 節の[2.1 の追記 II]や2.2 節の[2.2 の追記 II]、および、前節の[3.1.1 の追記 II]と同様に考えることができます。従って、[2.1 の追記 II]や[2.2 の追記 II]、および、[3.1.1 の追記 II]と同様に以下のように記述できます。
   先ず、各花びらが土台となる中心円に1点で接する場合は、土台となる中心円の位相角は の1点で定値となりますので、(28a)、(28b)式を使う代わりに次式を使います。ここに、 は中心円の半径です。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (D1)
          .                      (D2)
   以上を拡張して、各花びらが土台となる中心円に任意の広がり幅で接する場合を説明します。
   接する任意の広がり幅を、土台となる中心円の位相角で計って とします。すると、中心円の位相角は、上記のような定点ではなく、 のように とともに動くことになります。よって、(D1)、(D2)式を使う代わりに次式を使います。ただ、上記のように、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (D3)
          .                      (D4)
ここに、角度は1個の花びらが土台となる中心円を占める基本角で、一周の角度を個数 で割った値を示します。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (15)式から(20)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を図D5から図D8に示します。ただし、 としました。


図D5  n=8, a=1, b=2,
c=0.5, d=1, e=0.4, l=0
図D6  n=8, a=1, b=2,
c=0.5, d=1, e=0.4, l=0.5
図D7  n=8, a=1, b=2,
c=0.5, d=1, e=0.4, l=1
図D8  n=8, a=1, b=2,
c=0.5, d=1, e=0.4, l=2.5

   (15)式から(20)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム d_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 02, 2012 に追記


4.   カージオイドをそのままに花びらに用いる場合

   ここでは単純にカージオイドをそのまま花びらに用いる場合を扱います。

   先ず、1個のカージオイドの座標原点をカージオイドの底に移したときのカージオイドを表す式は、(18)式と図1より、直交座標表示で次のようになります。
          .                      (29)
          ,                      (30)
ここに、(30)式の括弧かっこ内の最後の項は原点をカージオイドの底に移動させるためのものです。また、(30)式中の は、(17)式と同様に、y 方向へ任意に伸縮できる係数です。

   このように座標原点を移動させた後の動径は、
          .                      (31)
   改めて、花の形を与える直交座標表示を(23)、(24)式に相当して、次の2式で与えられます。
          ,                      (32)
および、
          ,                      (33)
ただし、は花形の1周する位相を示し、 は中心に据える円の半径を示します。

   最後に、元の1個のカージオイドの位相 から花形の1周する位相への変換を、2通りに分けます。1つは、花びらの重なりがない場合と、もう1つは、花びらの重なりがある場合です。

4.1   花びらの重なりがない場合

   元の1個のカージオイドの位相 から花形の1周する位相への変換を次ようにしました。それは、(22)式においてに、 に、に書き換えればよく、次式のようになります。
          ,                      (34)
ただし、 番目の花びらを指します。なお、以上をみて分かりますように、位相に関しては、簡便さを考えて座標原点の移動を反映させていないので、各花びらは元のカージオイドの形をそのまま引き継いではいません。

   (18)式、および、(29)式から(34)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図67 n=5, d=1, e=0
図68 n=5, d=1, e=1
図69 n=5, d=2, e=0
図70 n=5, d=2, e=1

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図67 n=5, d=1, e=0図68 n=5, d=1, e=1図69 n=5, d=2, e=0図70 n=5, d=2, e=1


   (18)式、および、(29)式から(34)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム e1です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



4.2   花びらの重なりがある場合

   各花びらが交互に重なり合う場合は、元の1個のカージオイドの位相 から花形の1周する位相への変換を次ようにします。それは、(34)式における に、 に置き換えればよく、次式となります。
          ,                      (35-1)
ただし、 番目の花びらを指します。なお、以上をみて分かりますように、位相に関しては、簡便さを考えて座標原点の移動を反映させていないので、各花びらは元のカージオイドの形をそのまま引き継いではいません。

   さらに、重なり合いを示す指標を として、(35-1)式の発展型を次式に示します。このとき、例えば、前節4.1 の場合は 、隣り合う花びらが重なり合う場合は で与えます。
          ,                      (35-2)
ただし、 番目の花びらを指します。

   (18)式、および、(29)式から(33)式、および、(35-1)式、または、(35-2)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。

図71a n=5, d=1, e=0, p=1
図71b n=5, d=1, e=1, p=1
図71c n=5, d=2, e=0, p=1
図71d n=5, d=2, e=1, p=1

図72 n=6, d=2, e=1, p=1  
図73a n=3, d=1, e=1, p=0.5  
図73b n=3, d=1, e=1, p=1  
図73c n=3, d=1, e=1, p=1.5  

図74a n=5, d=1, e=1, p=0.5  
図74b n=5, d=1, e=1, p=1  
図74c n=5, d=1, e=1, p=1.5  
図74d n=5, d=1, e=1, p=2  

図74e n=5, d=1, e=1, p=2.5  
図74f n=5, d=1, e=1, p=3.5  
図75a n=10, d=1, e=1, p=1.5  
図75b n=10, d=1, e=1, p=3.5  

   上図を着色しますと次のようです。クリックすると線画が現れます。

図71a n=5, d=1, e=0図71b n=5, d=1, e=1図71c n=5, d=2, e=0図71d n=5, d=2, e=1図72 n=6, d=2, e=1図73a n=3, d=1, e=1, p=0.5図73b n=3, d=1, e=1, p=1図73c n=3, d=1, e=1, p=1.5図74a n=5, d=1, e=1, p=0.5図74b n=5, d=1, e=1, p=1図74c n=5, d=1, e=1, p=1.5図74d n=5, d=1, e=1, p=2図74e n=5, d=1, e=1, p=2.5図74f n=5, d=1, e=1, p=3.5図75a n=10, d=1, e=1, p=1.5図75b n=10, d=1, e=1, p=3.5



   (18)式、および、(29)式から(33)式、および、(35-2)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム e2です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

edited in Mar. 11, 2009 & reviced in Sep. 11, 2012


4.3   各花びらの位相角と土台となる中心円の位相角を独立にする場合

   前節までの(18)式、および、(29)式から(33)式がそのまま使えます。さらに、3.2 節の[3.2 の追記 II]と同様に考えることができ、[3.2 の追記 II]の(D3)、(D4)式が使えます。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (18)式、(29)式から(33)式、(D3)式、および、(D4)式を計算して得られた図形の例を図E1から図E4に示します。ただし、 としました。

図E1  n=8, a=1, d=1, e=1, l=0
図E2  n=8, a=1, d=1, e=1, l=0.5
図E3  n=8, a=1, d=1, e=1, l=1
図E4  n=8, a=1, d=1, e=1, l=2.5

   (18)式、(29)式から(33)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム e_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 02, 2012 に追記


5.   円をそのままに花びらに用いる場合(その1)

   ここでは単純に円をそのまま花びらに用いる場合を扱います。

   先ず、1個の円(半径 、位相 )は、で表されますが、先ず、座標原点を円の底に移します。円のままでは単純すぎるので、(16)、(17)式と同じではないけれども類似した係数 を導入して変形された円を表す式を3種類想定します。その3種類を各項ごとに分けて検討します。

5.1   変形された円の想定1

   変形された円を表す式を、直交座標表示で次のようにしました。
          .                      (36)
          ,                      (37)
ここに、(37)式の括弧かっこ内の最後の項は原点を変形された円の底に移動させるためのものです。

   このように座標原点を移動させた後の動径は(31)式が流用できます。また、花の形を与える直交座標表示も(32)、(33)式が使えます。ただし、は花形の1周する位相を示し、 は中心に据える別の円の半径を示します。

   前節と同様に、元の1個の円の位相 から花形の1周する位相への変換を、2通りに分けます。1つは、花びらの重なりがない場合と、もう1つは、花びらの重なりがある場合です。

5.1.1   花びらの重なりがない場合

   元の1個の円の位相 から花形の1周する位相への変換式は(34)式が使えます。ただし、 に置き換えます。

   (31)式から(34)式、および、(36)、(37)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図76 n=5, b=0, c=1, d=2, e=1
図77 n=12, b=0, c=1, d=2, e=1
図78 n=16, b=0, c=4.2, d=3, e=1
図79 n=16, b=0, c=5, d=3, e=1

図80 n=16, b=0.2, c=3.8, d=3, e=1
図81 n=16, b=0.3, c=3, d=3, e=1
図82 n=16, b=0.3, c=4, d=3, e=1

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図76 n=5, b=0, c=1, d=2, e=1図77 n=12, b=0, c=1, d=2, e=1図78 n=16, b=0, c=4.2, d=3, e=1図79 n=16, b=0, c=5, d=3, e=1図80 n=16, b=0.2, c=3.8, d=3, e=1図81 n=16, b=0.3, c=3, d=3, e=1図82 n=16, b=0.3, c=4, d=3, e=1


   (31)式から(34)式、および、(36)、(37)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f1です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



5.1.2   花びらの重なりがある場合

   この場合、元の1個の円の位相 から花形の1周する位相への変換式は(35-1)式、または、(35-2)式が使えます。ただし、 に置き換えます。

   (31)式から(33)式、(35)式または(35-2)式、(36)、および、(37)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図83 n=5, b=0, c=1,
d=2, e=0, p=2
図84 n=5, b=0, c=1,
d=2, e=1, p=2
図85a n=16, b=0.2, c=3.8,
d=3, e=1, p=2
図85b n=32, b=0.2, c=3.8,
d=3, e=1, p=2

図86a n=10, b=0, c=1,
d=2, e=2,
p=0.5
図86b n=10, b=0, c=1,
d=2, e=2,
p=1
図86c n=16, b=0, c=1,
d=2, e=2,
p=1.5
図86d n=10, b=0, c=1,
d=2, e=2,
p=2

図86e n=10, b=0, c=1,
d=2, e=2,
p=3
図86f n=10, b=0, c=1,
d=2, e=2,
p=4

   上図のうち、図83から図85b、および、図86fを着色しますと次のようです。最初の4つの図はクリックすると拡大の線画が現れます。

図83 n=5, b=0, c=1, d=2, e=0図84 n=5, b=0, c=1, d=2, e=1図85a n=16, b=0.2, c=3.8, d=3, e=1図85b n=32, b=0.2, c=3.8, d=3, e=1図86f n=10, b=0, c=1, d=2, e=2, p=4



   (31)式から(33)式、および、(35-2)式、(36)、(37)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f2です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

edited in Mar. 11, 2009 & reviced in Sep. 14, 2012


5.1.3   各花びらの位相角と土台となる中心円の位相角を独立にする場合

   前節までの(27)式、および、(31)式、(36)式、(37)式がそのまま使えます。さらに、3.2 節の[3.2 の追記 II]と同様に考えることができ、[3.2 の追記 II]の(D3)、(D4)式が使えます。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (27)式、(31)式、(36)式、(37)式、(D3)式、および、(D4)式を計算して得られた図形の例を図F1aから図F1dに示します。ただし、 としました。

図F1a  n=8, a=1, b=0.2, c=4,
d=3, e=2, l=0
図F1b  n=8, a=1, b=0.2, c=4,
d=3, e=2, l=0.5
図F1c  n=8, a=1, b=0.2, c=4,
d=3, e=2, l=1
図F1d  n=8, a=1, b=0.2, c=4,
d=3, e=2, l=2.5

図F1e  n=3, a=1, b=1.5, c=1,
d=0.85, e=0.3, l=0.4
図F1f  n=8, a=1, b=2, c=0.41,
d=0.8, e=0.35, l=1.5
図F1g  n=8, a=1, b=1.5, c=0.63,
d=1, e=0.37, l=1.5

   上図のうち、図F1f と図F1g を着色しますと次のようです。クリックすると拡大の線画が現れます。

図F1f n=8, a=1, b=2, c=0.41, d=0.8, e=0.35, l=1.5図F1g n=8, a=1, b=1.5, c=0.63, d=1, e=0.37, l=1.5


   (27)式、(31)式、(36)式、(37)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 02, 2012 に追記


5.1.4   (36)式と(37)式の符号を変更して 5.1.3 節の計算プログラムに従う場合

   (36)式と(37)式の符号を変更して計算プログラムは5.1.3節に従う場合を、符号の変更の仕方で7通りに分けて扱います。

5.1.4 (i)   その1

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E1)
          ,                      (E2)
ここに、(E2)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E1)式、(E2)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F1g  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1h  n=5, a=1, b=1, c=1,
d=1, e=1, l=0.5
図F1i  n=5, a=1, b=1, c=1,
d=1, e=1, l=1
図F1j  n=5, a=1, b=1, c=1,
d=1, e=1, l=1.5

   (E1)式、(E2)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f2_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (ii)   その2

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E3)
          ,                      (E4)
ここに、(E4)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E3)式、(E4)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F1k  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1l  n=5, a=1, b=1, c=1,
d=1, e=1, l=0.5
図F1m  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (E3)式、(E4)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f3_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (iii)   その3

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E5)
          ,                      (E6)
ここに、(E6)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E5)式、(E6)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F1n  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1o  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (E5)式、(E6)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f4_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (iv)   その4

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E7)
          ,                      (E8)
ここに、(E8)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E7)式、(E8)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F1p  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1q  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (E7)式、(E8)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f5_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (v)   その5

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E9)
          ,                      (E10)
ここに、(E10)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E9)式、(E10)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F1r  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1s  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (E9)式、(E10)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f6_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (vi)   その6

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E11)
          ,                      (E12)
ここに、(E12)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E11)式、(E12)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F1t  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1u  n=5, a=1, b=1, c=1,
d=1, e=1, l=1


   (E11)式、(E152)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f7_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.1.4 (vii)   その7

   (36)式と(37)式に代えて、次式を想定します。
          .                      (E13)
          ,                      (E14)
ここに、(E14)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (E13)式、(E14)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F1v  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F1w  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (E13)式、(E14)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f8_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.2   変形された円の想定2

   変形された円を表す式を、直交座標表示で次のようにしました。
          .                      (38)
          ,                      (39)
ここに、(39)式の括弧かっこ内の最後の項は原点を変形された円の底に移動させるためのものです。

   変形後の動径は5.1節と同様、(31)式が流用できます。また、花の形を与える直交座標表示も5.1節と同様、(32)、(33)式が使えます。ただし、は花形の1周する位相を示し、 は中心に据える別の円の半径を示します。

   5.1節と同様、元の1個の円の位相 から花形の1周する位相への変換を、2通りに分けます。1つは、花びらの重なりがない場合と、もう1つは、花びらの重なりがある場合です。


5.2.1   花びらの重なりがない場合

   5.1節と同様、元の1個の円の位相 から花形の1周する位相への変換式は(34)式が使えます。ただし、 に置き換えます。

   (31)式から(34)式、および、(38)、(39)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図87 n=8, b=0.2, c=4, d=3, e=1
図88a n=16, b=0, c=4, d=3, e=1
図88b n=38, b=0, c=4, d=3, e=0
図88c n=38, b=0, c=4, d=3, e=1
図88d n=200, b=0, c=4, d=3, e=3.7

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図87 n=8, b=0.2, c=4, d=3, e=1図88a n=16, b=0, c=4, d=3, e=1図88b n=38, b=0, c=4, d=3, e=0図88c n=38, b=0, c=4, d=3, e=1図88d


   (31)式から(34)式、および、(38)、(39)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f1zです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

A part of the figures and the picture are added in May 14, 2013.


5.2.2   花びらの重なりがある場合

   5.1節と同様、元の1個の円の位相 から花形の1周する位相への変換式は(35-1)式、または、(35-2)式が使えます。ただし、 に置き換えます。

   (31)式から(33)式、および、(35-1)式または(35-2)式、(38)、(39)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。


図89 n=5, b=0.2, c=4,
d=3, e=1, p=2
図90 n=8, b=0.2, c=4,
d=3, e=1, p-2
図91a n=16, b=0, c=4,
d=3, e=1, p=2
図91b n=32, b=0, c=4,
d=3, e=1, p=2<

図92a n=10, b=0, c=4,
d=3, e=3,
p=0.5
図92b n=10, b=0, c=4,
d=3, e=3,
p=1
図92c n=10, b=0, c=4,
d=3, e=3,
p=1.5
図92d n=10, b=0, c=4,
d=3, e=3,
p=2

図92e n=10, b=0, c=4,
d=3, e=3,
p=3
図92f n=10, b=0, c=4,
d=3, e=3,
p=4

   上図のうち図89から図91b、および、図92fを着色しますと次のようです。中4つの図はクリックすると拡大の線画が現れます。

図89 n=5, b=0.2, c=4, d=3, e=1図89 n=5, b=0.2, c=4, d=3, e=1図90 n=8, b=0.2, c=4, d=3, e=1図91a n=16, b=0, c=4, d=3, e=1図91b n=32, b=0, c=4, d=3, e=1図92f n=10, b=0, c=4, d=3, e=3, p=4



   (31)式から(33)式、および、(35-2)、(38)、(39)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f2zです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

edited in Mar. 11, 2009 & reviced in Sep. 15, 2012


5.2.3   各花びらの位相角と土台となる中心円の位相角を独立にする場合


   前節までの(27)式、および、(31)式、(38)式、(39)式がそのまま使えます。さらに、3.2 節の[3.2 の追記 II]と同様に考えることができ、[3.2 の追記 II]の(D3)、(D4)式が使えます。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (38)式、(39)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を図F2aから図F2dに示します。ただし、 としました。


図F2a  n=8, a=1, b=0.1, c=4,
d=3, e=2, l=0
図F2b  n=8, a=1, b=0.1, c=4,
d=3, e=2, l=0.5
図F2c  n=8, a=1, b=0.1, c=4,
d=3, e=2, l=1
図F2d  n=8, a=1, b=0.1, c=4,
d=3, e=2, l=2.5

   (38)式、(39)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 02, 2012 に追記

5.2.4   (38)式と(39)式の符号を変更して 5.2.3 節の計算プログラムに従う場合


   (38)式と(39)式の符号を変更して計算プログラムは5.2.3節に従う場合を、符号の変更の仕方で7通りに分けて扱います。

5.2.4 (i)   その1

   (38)式と(39)式に代えて、次式を想定します。
          .                      (F1)
          ,                      (F2)
ここに、(F2)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F1)式、(F2)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F2e  n=8, a=1, b=1, c=4,
d=3, e=2, l=1.5
図F2f  n=8, a=1, b=1.2, c=3,
d=2, e=1.5, l=1.5
図F2g  n=8, a=1, b=2, c=4,
d=3, e=2, l=1

   上図のうち図F2f を着色しますと次のようです。クリックすると拡大の線画が現れます。


図F2f n=8, a=1, b=1.2, c=3, d=2, e=1.5, l=1.5



   (F1)式、(F2)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz2_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 09, 2012 に追記


5.2.4 (ii)   その2

   (38)式と(39)式に代えて、次式を想定します。
          .                      (F3)
          ,                      (F4)
ここに、(F4)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F3)式、(F4)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F2h  n=8, a=1, b=1, c=1,
d=1, e=1, l=0
図F2i  n=8, a=1, b=1.2, c=3,
d=2, e=1.5, l=0
図F2j  n=8, a=1, b=1.2, c=3,
d=2, e=1.5, l=1.5

   (F3)式、(F4)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz3_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 09, 2012 に追記


5.2.4 (iii)   その3

   (38)式と(39)式に代えて、次式を想定します。
          .                      (F5)
          .                      (F6)
ここに、(F6)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F5)式、(F6)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F2k  n=8, a=1, b=1, c=1,
d=1, e=1, l=0
図F2l  n=8, a=1, b=2, c=4,
d=3, e=2, l=0
図F2m  n=8, a=1, b=2, c=4,
d=3, e=2, l=1

   (F5)式、(F6)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz4_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 09, 2012 に追記


5.2.4 (iv)   その4

   (38)式と(39)式に代えて、次式を想定します。
          .                      (F7)
          ,                      (F8)
ここに、(F8)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F7)式、(F8)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F2n  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F2o  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (F7)式、(F8)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz5_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.2.4 (v)   その5


   (38)式と(39)式に代えて、次式を想定します。
          .                      (F9)
          ,                      (F10)
ここに、(F10)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F9)式、(F10)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F2p  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F2q  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (F9)式、(F10)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz6_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.2.4 (vi)   その6

   (38)式と(39)式に代えて、次式を想定します。
          .                      (F11)
          ,                      (F12)
ここに、(F12)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F11)式、(F12)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F2r  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F2s  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (F11)式、(F12)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz7_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.2.4 (vii)   その7


   (38)式と(39)式に代えて、次式を想定します。
          .                      (F13)
          ,                      (F14)
ここに、(F14)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (F13)式、(F14)式、(31)式、(27)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F2t  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F2u  n=5, a=1, b=1, c=1,
d=1, e=1, l=0.5
図F2v  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (F13)式、(F14)式、(31)式、(27)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fz8_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3   変形された円の想定3

   変形された円を表す式を、直交座標表示で次のようにしました。
          .                      (40)
          ,                      (41)
ここに、(41)式の括弧かっこ内の最後の項は原点を変形された円の底に移動させるためのものです。

   変形後の動径は5.1節、および、5.2節と同様、(31)式が流用できます。また、花の形を与える直交座標表示も5.1節、および、5.2節と同様、(32)、(33)式が使えます。ただし、は花形の1周する位相を示し、 は中心に据える別の円の半径を示します。

   5.1節、および、5.2節と同様、元の1個の円の位相 から花形の1周する位相への変換を、2通りに分けます。1つは、花びらの重なりがない場合と、もう1つは、花びらの重なりがある場合です。

5.3.1   花びらの重なりがない場合

5.1節、および、5.2節と同様、元の1個の円の位相 から花形の1周する位相への変換式は(34)式が使えます。ただし、 に置き換えます。

   (31)式から(34)式、および、(40)、(41)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。

図93 n=16, b=0.4, c=4, d=3, e=1
図94 n=16, b=0.4, c=4.2, d=3, e=1
図95 n=16, b=0.52, c=3.8, d=3, e=1

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図93 n=16, b=0.4, c=4, d=3, e=1図94 n=16, b=0.4, c=4.2, d=3, e=1図95 n=16, b=0.52, c=3.8, d=3, e=1


   (31)式から(34)式、および、(40)、(41)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f1zzです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



5.3.2   花びらの重なりがある場合

   5.1節、および、5.2節と同様、元の1個の円の位相 から花形の1周する位相への変換式は(35-1)式、または、(35-2)式が使えます。ただし、 に置き換えます。

   (31)式から(33)式、および、(35-1)式または(35-2)式、(40)、(41)式をコンピュータで計算して得た花の形の例を以下に示します。ただし、 としました。

図96a n=16, b=0.44,
c=4, d=3, e=1, p=2
図96b n=32, b=0.44,
c=4, d=3, e=1, p=2
図97a n=16, b=0.44,
c=4, d=3, e=3,
p=0.5
図97b n=32, b=0.44,
c=4, d=3, e=3,
p=1

図97c n=16, b=0.44,
c=4, d=3, e=3,
p=1.5
図97d n=32, b=0.44,
c=4, d=3, e=3,
p=2
図97e n=16, b=0.44,
c=4, d=3, e=3,
p=3
図97f n=32, b=0.44,
c=4, d=3, e=3,
p=4

   上図のうち図96a と b、および、図97fを着色しますと次のようです。最初の2つの図はクリックすると拡大の線画が現れます。

図96a n=16, b=0.44, c=4, d=3, e=1図96b n=32, b=0.44, c=4, d=3, e=1図97f n=10, b=0.44, c=4, d=3, e=3, p=4



   (31)式から(33)式、および、(35-2)、(40)、(41)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム f2zzです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

edited in Mar. 11, 2009 & reviced in Sep. 16, 2012


5.3.3   各花びらの位相角と土台となる中心円の位相角を独立にする場合


   前節までの(27)式、および、(31)式、(40)式、(41)式がそのまま使えます。さらに、3.2 節の[3.2 の追記 II]と同様に考えることができ、[3.2 の追記 II]の(D3)、(D4)式が使えます。なお、C プログラムでは、補正係数 を入力変数にして、1個の花びらが土台となる中心円に接する角度( )を与えています。

   (27)式、(31)式、(40)式、(41)式、(D3)式、および、(D4)式を計算して得られた図形の例を図F3aから図F3dに示します。ただし、 としました。


図F3a  n=8, a=1, b=0.5, c=4,
d=3, e=2, l=0
図F3b  n=8, a=1, b=0.5, c=4,
d=3, e=2, l=0.5
図F3c  n=8, a=1, b=0.5, c=4,
d=3, e=2, l=1
図F3d  n=8, a=1, b=0.5, c=4,
d=3, e=2, l=2.5

   (27)式、(31)式、(40)式、(41)式、(D3)式、および、(D4)式を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 02, 2012 に追記


5.3.4   (38)式と(39)式の符号を変更して 5.3.3 節の計算プログラムに従う場合

   (40)式と(41)式の符号を変更して計算プログラムは5.3.3節に従う場合を、符号の変更の仕方で7通りに分けて扱います。

5.3.4 (i)   その1

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G1)
          ,                      (G2)
ここに、(G2)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G1)式、(G2)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F3e  n=5, a=1, b=1, c=1,
d=1, e=1, l=0
図F3f  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G1)式、(G2)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz2_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3.4 (ii)   その2

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G3)
          ,                      (G4)
ここに、(G4)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G3)式、(G4)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F3g  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3h  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G3)式、(G4)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz3_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3.4 (iii)   その3

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G5)
          ,                      (G6)
ここに、(G6)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G5)式、(G6)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F3i  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3j  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G5)式、(G6)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz4_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3.4 (iv)   その4

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G7)
          ,                      (G8)
ここに、(G8)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G7)式、(G8)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。


図F3k  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3l  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G7)式、(G8)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz5_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記

5.3.4 (v)   その5

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G9)
          ,                      (G10)
ここに、(G10)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G9)式、(G10)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F3m  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3n  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G9)式、(G10)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz6_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3.4 (vi)   その6

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G11)
          ,                      (G12)
ここに、(G12)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G11)式、(G12)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F3o  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3p  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G11)式、(G12)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz7_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


5.3.4 (vii)   その7

   (40)式と(41)式に代えて、次式を想定します。
          .                      (G13)
          ,                      (G14)
ここに、(G14)式の最後の項は原点を変形された円の底に移動させるためのものです。

   (27)式、(31)式、(G13)式、(G14)式、(D3)式、および、(D4)式を計算して得られた図形の例を以下に示します。

図F3q  n=5, a=1, b=1, c=1,
d=3, e=2, l=0
図F3r  n=5, a=1, b=1, c=1,
d=1, e=1, l=1

   (27)式、(31)式、(G13)式、(G14)式、(D3)式、および、(D4)を数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム fzz8_independent_angleです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Oct. 16, 2012 に追記


6.   各花びらの位相角と中心円の位相角を独立に設定して描く方法

   前節までは、各花びらとその土台となる中心円の位相角を共通にして花を構成してきた。このやり方では、土台となる中心円の決められた角度領域を越えて花びらの横幅を広げることができません。
   そこで、花びらの構成は上記通りですが、原点に立ち返って、最初からその設計をやり直し、各花びらの位相角と中心円の位相角を独立に設定して花を描くことを試みます。先ず、円形をもとに花びらを構成することから始め、余裕があれば、ハート形から花びらを構成することも試みますが、後者については行わないかもしれません。


図98b  花びら
図98a  元の円
6.1   円形をもとに花びらを構成する場合


   図98aに示す円の底を尖らせて図98bのような花びらを作ります。図98aより、円を示す方程式は
          ,                      (42)
ただし、

   角度 の関係は、
          ,                      (43)
ここに、



図99  位相角 から への変換

   次に、「ハート曲線  II」の 2 節の「方法1」 や上記 2.1 節で記述したのと同じように、花びらの底が与えられた角度 (図98b)になるように、円の位相角 から花びらを表示する位相角 に、図99に示すように変換します。この変換式は次のようになります。
          .                      (44)
   これに(43)式を代入すると、 から への変換式が次のように求まります。
          .                      (45)
   花びらの (x, y) 座標は、
          ,                      (46)
および、
          .                      (47)

   この花びらを複数個、中心円の周りに配置れば花の形が得られます。配置する花びらの個数を とすると、次式のように、一周の角度を個数 で割った値を、花びらの底の角度の基準と考えます。
          .                      (48)
   花びらの横幅よこはばを変えたいときは上式に変形率(ただし、0 < )を掛けた次式を改めて花びらの底の角度とします。
          .                      (48b)

   以上は花びら1個だけの配置に過ぎません。周囲に配置する 個の花びらに番号 を付けることにすると、 番目の花びらの位相角は、(45)式の角度 をさらに だけ回転させればよい。すなわち、(45)式に を付加する次式とすればよい。
          .                      (49)

   以上で、配置する花びら 個を記述できますが、これを半径 の円の周囲に花びらを配置します。この配置の仕方によって次のサブセクション毎に分けて考えます。


6.1.1   各花びらの位相角と土台となる中心円の位相角を共通にする前節までと同じ場合(比較のための参考)


   この場合、花の形全体は上記 2.1 節の(6)、(7)式と同じ次式で表されます。
          ,                      (50)
          .                      (51)

図100 n=5, k=1, c=1
   (42)式、(48)または(48b)式、(49)式、(50)式、および、(51)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図100に示します。ただし、 としました。

   (42)式、(48)式、(49)式、(50)式、および、(51)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_curve_Aです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



6.1.2   各花びらの位相角と土台となる中心円の位相角を独立にする場合

   各花びらのが土台となる中心円とどのように接するか、などで、以下の3つの場合に分けました。

6.1.2 (i)   各花びらが土台となる中心円に1点で接する場合

   この場合は、土台となる中心円の位相角は の1点で定値となりますので、(50)、(51)式を使う代わりに次式を使います。ここに、 は中心円の半径です。その他の式は前項と同じものを使います。ただ、各花びらが土台となる中心円と接する各点をつなぐ中心円を別途描く必要があります。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。
          ,                      (52)
          .                      (53)



図101 n=5, k=1, c=1

   (42)式、(48)または(48b)式、(49)式、(52)式、および、(53)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図101に示します。ただし、 としました。

   (42)式、(48)式、(49)式、(52)式、および、(53)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_curve_Bです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.1.2 (ii)   各花びらが土台となる中心円に任意の広がり幅で接する場合

   接する任意の広がり幅を土台となる中心円の位相角で計って とします。すると、中心円の位相角は、前項 6.1.2 (i) のような定点ではなく、 のように とともに動くことになります。よって、(52)、(53)式を使う代わりに次式を使います。ここに、 は中心円の半径です。その他の式は前項と同じものを使います。ただ、隣り合う花びら同士をつなぐ中心円を別途描く必要があります。
          ,                      (54)
          .                      (55)

   (42)式、(48)または(48b)式、(49)式、(54)式、および、(55)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図102a から f に示します。ただし、 としました。

図102a n=5, k=1, l=0.3, c=1
図102b n=5, k=1, l=1, c=1
図102c n=5, k=1, l=1.5, c=1
図102d n=5, k=1, l=2, c=1

図102g
図102e n=8, k=1, l=0.3, c=1.5
図102f n=10, k=1, l=2.5, c=1
図102g n=5, k=2.4, l=0.1, c=0.6

   (42)式、(48)式、(49)式、(54)式、および、(55)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_curve_Cです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



6.1.2 (iii)   前項 6.1.2 (ii) において花びらの先をとがらせる場合(その1)

   前項 6.1.2 (ii) において、一例として(42)式を次式に変更するだけでよく、他の式は前項と同じです。
          ,                      (56-1)

   (56)式、(48)または(48b)式、(49)式、(54)式、および、(55)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図103aから図103dに示します。ただし、 としました。なお、1個の花びらが中心円を占拠する角度に対する補正係数 "l" については、下記に記載する計算プログラム中に説明があります。


(クリックすると拡大の線画が現れます)
図103b n=32, b=1, k=5.3, l=0.3, c=1.5
図103a n=5, b=1, k=1, l=0.3, c=1
図103b n=32, b=1, k=5.3, l=0.3, c=1.5

(クリックすると拡大の線画が現れます)
図103c n=3, b=0.7, k=1.1, c=l=0
図103d n=3, b=1, k=2, c=l=0

   (56-1)式、(48)式、(49)式、(54)式、および、(55)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_curve_Dです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 09, 2012 & Sep 09, 2012

6.1.2 (iv)   前項 6.1.2 (ii) において花びらの先をとがらせる場合(その2)

   前項 6.1.2 (iii) の(56-1)式を次式に変えてみます。
          ,                      (56-2)

   (56-2)式、(48)または(48b)式、(49)式、(54)式、および、(55)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図104に示します。ただし、 としました。


(クリックすると
拡大の線画が現れます)
図104 n=3, b=0.7, k=1.1 c=l=0

   (56-2)式、(48)式、(49)式、(54)式、および、(55)式をを数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_curve_D2です。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

Sep 09, 2012

6.2   カージオイドから花びらを構成する場合

カージオイドから花びらの形の基本となるハート形への変換は、第2節の方法1と第3節の方法2がありました。以下にその2通りを扱います。


6.2.1   第2節の方法1に従う場合

図105b  花びらの元となるハート形
図105a  元のカージオイド

    ここでは前述の「第2節 方法1」に添って行います。第2節と異なるのは、花びらと中心円の位相を互いに独立に設定することです。よって、最初の記述は第2節と重複もありますが、分かりやすくするために再録します。

   カージオイドから作り出す「ハート形曲線  II」の方法1で記述した元のカージオイドとそれから作り出されたハート形曲線を図105a および b に示します。この形を土台となる中心円の周囲に周期的に配置して花の形を構成しようというものです。
   「ハート形曲線  II」の方法1で得られた式で、ここでも用いる式は次の(57)、(58)、および、(59)式です。
          ,                      (57)
ただし、

          ,                      (58)
ここに、

   また、カージオイドの角度 は図105a より
          ,                      (59)
ただし、



図106  位相角 から への変換

   次に、カージオイドの底が、ハート形に移行するハートの底の与えられた角度 (図105b)になるように、カージオイドの位相角 からハート形を表示する位相角 に、図106に示すように変換します。この変換式は次のようになります。
          .                      (60)
   これに(59)式を代入すると、 から への変換式が次のように求まります。

          .                      (61)
   以上のハート形曲線の (x, y) 座標は次のように記述できます。
          .                      (62)
          .                      (63)
   花びらの形のバラエティーを広げるために、ハート形の縦方向( y 方向)を伸縮率 を用いて、(61)式から次式に変更します。
          .                      (63b)
   (60)式と(61b)式を再び極座標に表示します。このときの動径と位相角は次の2式で与えられることになります。
          ,                      (64)
          ,                      (65)

   以上は元となる花びら1個の記述に過ぎません。この花びらを、半径 の中心円の周囲に個、配置することを考えます。また、各花びらの底の基準角を、次式のように、一周の角度を花びらの個数 で割った値と定義します。
          .                      (66)

   次に、 個の花びらに番号 を付けることにします。すると、、上式の「花びらの底の基準角」の式の構成から推測して、 番目の花びらの位相角は、(65)式の角度からさらに だけ回転させればよい。すなわち、(65)式に を付加する次式を改めて位相角とすればよい。
          .                      (67)

図107  花びらが中心円と接触する角度
の範囲 、および、中心円の位相


   一方、1個の花びらが中心円と接する角度範囲を中心円の位相角で計って と決めるとき、 番目の花びらが接する中心円での位相 は、上記 6.1.2(ii) 項と同様の考え方によって、図105a の位相 と共に次式のように動きます。
          ,                      (68)
ここに、 および、 は、各花びらの元になる1個のカージオイド(図105a)の位相角 [(57)式中にもある] の最大値と最小値です。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。

   以上より、全体の花の形の (x, y)座標は、(54)および(55)式と同様に次の2式で得られます。
          .                      (69)
          .                      (70)

   以上、(57)式から(70)式を用いて計算することにより、花の形の (x, y)座標が求められます。こうして得られた図形の例を以下に示します。ただし、 としました。

図108 n=5, b=1, c=0, k=1, l=0
図109 n=5, b=1, c=1, k=1.5, l=0
図110 n=5, b=1, c=1, k=1, l=0.3
図111 n=5, b=0.5, c=1, k=1, l=0.3

図112 n=5, b=1, c=1, k=1, l=0.5
図113 n=5, b=1, c=1, k=1, l=1
図114 n=5, b=1, c=1, k=1, l=1.5

   (57)式から(70)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_gです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 14, 2012

6.2.2   第2節の方法2に従う場合

    ここでは前述の「第3節 方法2」に添って行います。第2節と異なるのは、花びらと中心円の位相を互いに独立に設定することです。よって、最初の記述は第2節と重複もありますが、分かりやすくするために再録します。

   カージオイドから作り出す「ハート形曲線  II」の方法2で記述した元のカージオイドとそれから作り出されたハート形曲線を図115a および b に示します。この形を土台となる中心円の周囲に周期的に配置して花の形を構成しようというものです。
   方法2は、カージオイドの底に角度を付けるような位相角の変換を行う方法です。考え方は図115c のように、カージオイドの位相角 (図115a)からハート曲線の位相角 < (図115b)に変換することです。この変換式として、ここでは、平方根関数と線形の合成を用いて次のように構成してみます。
          ,                      (71)
ここに、 は変換の強さを示す正の任意の係数と考えます。ただし、図115c に見られるように には周期性がなく、 の範囲にのみ適用されます。


図115a  元のカージオイド
図115b  ハート曲線
図115c  位相角 から への変換

   こうして、カージオイドの底に角度をなすように変換できます。
   綺麗きれいなハートに形にするために、もう1種の変換の強さを表す係数 と縦方向に伸縮する係数 を (x, y) 座標表示にする次の変換式に組み入れます。
          ,                        (72a)
および、
          ,                      (72b)
ただし、
          .                      (73)
   図115bの原点をハート形の尖った底に移す必要があります。移動によって(72a)式は変わりませんが、(72b)式は次のように変更されます。
          .                      (74)
   新たな原点に対するハート形の動径と位相角(下に述べるCプログラム中では ff と表記)は次式で表されます。
          .                      (75)
          .                      (76)
   このハート形の幅を変えてハートの底の角度を変えるには、(76)式の位相に変形率(ただし、0 < )を下式のようにほどこして、位相を定義し直します。なお、式中に の項が存在する理由は、ハート形がが位相 で左右対称になっているからです。
          .                      (76b)

   このハート形の花びらを複数個、中心円の周りに配置れば花の形が得られます。配置する花びらの個数を とし、花びらに番号 を付けることにすると、 番目の花びらの位相角は、(76b)式の角度 をさらに だけ回転させればよい。すなわち、(76b)式に を付加する次式を改めて 番目の花びらの位相角 とすればよい。
          .                      (77)

   以上で、配置する花びら 個を記述できますが、これを半径 の円の周囲に花びらを配置します。

図116  花びらが中心円と接触する角度
の範囲 、および、中心円の位相


   一方、1個の花びらが中心円と接する角度範囲を中心円の位相角で計って と決めるとき、 番目の花びらが接する中心円での位相 は、上記 6.2.1 項と同様の考え方によって、図115c の位相 と共に次式のように動きます。
          ,                      (78)
ここに、 および、 は、各花びらになる1個のハート形(図115b)の位相角 の最大値と最小値です。なお、式中に の項が存在する理由は、一番目()の花びらの中心円での位相が であり、ここから各花びらの位相がカウントされるためです。

   以上より、全体の花の形の (x, y)座標は、(69)および(70)式と同様に次の2式で得られます。
          .                      (79)
          .                      (80)

   以上、(71)式から(80)式を用いて計算することにより、花の形の (x, y)座標が求められます。こうして得られた図形の例を以下に示します。ただし、 としました。

図117 n=5, b=2, c=0,
d=1, e=0, k=1, l=0
図118 n=5, b=2, c=0,
d=1, e=1, k=1, l=0
図119 n=5, b=2, c=0,
d=1, e=1, k=1, l=0.5
図120 n=5, b=2, c=0,
d=1, e=1, k=1, l=1

図121 n=5, b=2, c=0,
d=1, e=1, k=1, l=1.5
図122 n=5, b=2, c=0,
d=1, e=1, k=1.5, l=0.5
図123 n=5, b=2, c=0,
d=1, e=1, k=2, l=0.5
図124 n=5, b=2, c=0,
d=1, e=1, k=2, l=0

図125 n=5, b=2, c=0,
d=1, e=1, k=2, l=1
図126 n=5, b=0.5, c=1,
d=1, e=1, k=2, l=0.5
図127 n=5, b=1, c=0,
d=1, e=0.5, k=1, l=0.3
図128 n=5, b=1, c=0,
d=1, e=0.5, k=0.7, l=1

図129 n=5, b=1, c=0,
d=1, e=0.2, k=0.8, l=1
図130 n=5, b=1, c=-0.2,
d=1, e=0.2, k=0.8, l=1
図131 n=5, b=1, c=0.2,
d=1, e=0.2, k=0.8, l=1
図132a n=5, b=2.5, c=0.65,
d=1, e=0.2, k=1.5, l=1

図132b n=5, b=3, c=0.8,
d=1.5, e=0.1, k=1.5, l=1
図132c n=5, b=2.8, c=0.8,
d=1.5, e=0.2, k=1.8, l=1
図132d n=5, b=1.8, c=0.8,
d=1.5, e=0.2, k=0.6, l=1

    図127、図128、および、図132d を着色しますと次のようです。クリックすると拡大の線画が現れます。

図127 n=5, b=1, c=0, d=1, e=0.5, k=1, l=0.3 図128 n=5, b=1, c=0, d=1, e=0.5, k=0.7, l=1 図132d

   (71)式から(80)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_gです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 18, 2012 and May 14, 2013.

6.2.3   前節 6.2.2 の変形


   桜の主要な品種であるソメイヨシノの花を模擬することは上記のどの方法でも不可能なことが分かりました。ところが、前節 6.2.2 の(72a)式の代わりに次の 6.2.3 (i) 項の(81)式を用いることで、可能となることを見つけました。1つの花びらの形に、曲線の微係数が不連続となる を使う初めての場合です。
    を式中に組み込む場所により、6.2.3 (i) 項に続いて各項に分けて取り扱います。

6.2.3 (i)   前項 6.2.2 の変形(その1)

   前節 6.2.2 の(72a)式に次式を置き換えます。
          .                      (81)

   (71)式、(72b)式から(80)式、および、(81)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図133と図134に示します。ただし、 としました。

図133a n=5, b=1, c=0.2,
d=1.25, e=0.2, k=0.75, l=1
図133b n=5, b=1, c=0.2,
d=1.3, e=0.2, k=0.75, l=1
図134 n=32, b=3, c=0.2,
d=3, e=2.3, k=1.2, l=0.8

   上図を着色しますと次のようです。クリックすると拡大の線画が現れます。

図133a図133b図134


   (71)式、(72b)式から(80)式、および、(81)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_iです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 22, 2012 and May 09, 2013.

6.2.3 (ii)   前節 6.2.2 の変形(その2)


   前節 6.2.2 の(72a)式と(72b)式にそれぞれ次の2式を置き換えます。
          .                      (82a)
          .                      (82b)

   (71)式、(73)式から(80)式、および、(82a)式、(82b)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図135と図136に示します。ただし、 としました。


図135a n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図135b n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1
図135c n=5, b=1, c=0.6,
d=1.3, e=0.3, k=0.8, l=1
図136 n=23, b=3, c=0.6,
d=3, e=2.8, k=1.4, l=0.7

   上図のうち図135c と図136 を着色しますと次のようです。クリックすると拡大の線画が現れます。

図135c図136


   (71)式、(73)式から(80)式、および、(82a)式、(82b)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_jです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 22, 2012 and May 09, 2013.


6.2.3 (iii)   前節 6.2.2 の変形(その3)

   前節 6.2.2 の(72a)式と(72b)式にそれぞれ次の2式を置き換えます。
          .                      (83a)
          .                      (83b)

   (71)式、(73)式から(80)式、および、(83a)式、(83b)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図137と図138に示します。ただし、 としました。


図137 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図138 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(83a)式、(83b)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_kです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (iv)   前節 6.2.2 の変形(その4)


   前節 6.2.2 の(72a)式と(72b)式にそれぞれ次の2式を置き換えます。
          .                      (84a)
          .                      (84b)

   (71)式、(73)式から(80)式、および、(84a)式、(84b)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図139と図140に示します。ただし、 としました。


(クリックすると
拡大の線画が現れます)
図139 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図140 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(84a)式、(84b)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_lです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



6.2.3 (v)   前節 6.2.2 の変形(その5)


   前節 6.2.2 の(72a)式と(72b)式にそれぞれ次の2式を置き換えます。
          .                      (85a)
          .                      (85b)

   (71)式、(73)式から(80)式、および、(85a)式、(85b)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図141と図142に示します。ただし、 としました。


図141a n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図141b n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1
図142a n=8, b=1, c=0.1,
d=1.2, e=0.9, k=0.9, l=0
図142b n=8, b=1.5, c=0.2,
d=1.2, e=0.6, k=0.9, l=0

   上図のうち図142a と図142b を着色しますと次のようです。クリックすると拡大の線画が現れます。

図142a n=8, a=1, b=1, c=0.1, d=1.2, e=0.9, k=0.9, l=0 図142b n=8, a=1, b=1.5, c=0.2, d=1.2, e=0.6, k=0.9, l=0


   (71)式、(73)式から(80)式、および、(85a)式、(85b)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_mです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (vi)   前節 6.2.2 の変形(その6)


   前節 6.2.2 の(72a)式に次式を置き換えます。
          .                      (86)

   (71)式、(72b)式から(80)式、および、(86)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図143と図144に示します。ただし、 としました。


図143 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図144 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(72b)式から(80)式、および、(86)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_nです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (vii)   前節 6.2.2 の変形(その7)


   前節 6.2.2 の(72b)式に次式を置き換えます。
          .                      (87)

   (71)式、(72a)式、(73)式から(80)式、および、(87)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図145と図146に示します。ただし、 としました。


図145 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図146 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(72a)式、(73)式から(80)式、および、(87)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_oです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (viii)   前節 6.2.2 の変形(その8)


   前節 6.2.2 の(72b)式に次式を置き換えます。
          .                      (88)

   (71)式、(72a)式、(73)式から(80)式、および、(88)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を図147と図148に示します。ただし、 としました。

(クリックすると
拡大の線画が現れます)
図148
図147a n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図147b n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1
図148 n=5, b=1, c=0.35,
d=1.1, e=0.3, k=1.4, l=1

   (71)式、(72a)式、(73)式から(80)式、および、(88)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_pです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (iX)   前節 6.2.2 の変形(その9)


   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (89)

   (71)式、(73)式から(80)式、および、(89)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

(クリックすると
拡大の線画が現れます)
図151 n=5, b=1, c=0.2, d=1.25, e=0.3, k=0.7, l=1
図149 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図150 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1
図151 n=5, b=1, c=0.2,
d=1.25, e=0.3, k=0.7, l=1

   (71)式、(73)式から(80)式、および、(89)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_qです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (x)   前節 6.2.2 の変形(その10)


   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (90)

   (71)式、(73)式から(80)式、および、(90)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

図152 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図153 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(90)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_rです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (xi)   前節 6.2.2 の変形(その11)


   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (91)

   (71)式、(73)式から(80)式、および、(91)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

(クリックすると拡大の線画が現れます)
図154
図154 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図155 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(91)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_sです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (xii)   前節 6.2.2 の変形(その12)


   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (92)

   (71)式、(73)式から(80)式、および、(92)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。


図156 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図157 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(92)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_tです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。



6.2.3 (xiii)   前節 6.2.2 の変形(その13)

   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (93)

   (71)式、(73)式から(80)式、および、(93)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

図158 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図159 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(93)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_uです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (xiv)   前節 6.2.2 の変形(その14)

    前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (94)

   (71)式、(73)式から(80)式、および、(94)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

図160 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図161 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

   (71)式、(73)式から(80)式、および、(94)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_vです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。


6.2.3 (xv)   前節 6.2.2 の変形(その15)

   前節 6.2.2 の(72a)式と(72b)式に次の式を置き換えます。
          .                      (95)

   (71)式、(73)式から(80)式、および、(95)式を計算することにより、花の形の (x, y) 座標が求められます。こうして得られた図形の例を次に示します。ただし、 としました。

図162 n=5, b=1, c=0.2,
d=1, e=0.3, k=0.7, l=1
図163 n=5, b=1, c=0.2,
d=1, e=0.3, k=1, l=1

    (71)式、(73)式から(80)式、および、(95)式を用いて数値計算して1個の花の形の曲線を計算するための C++ プログラムはこちら 花の形の曲線の計算プログラム flower_wです。
   画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。
   C++ の計算方法、および、曲線の描画方法は、前記と同様です。

July 25, 2012
6.2.4   6.2.2 節の別変形について


    前節 6.2.3 の各項、6.2.3 (i)(ii)(iii)(iv)(v)(vi)(vii)(viii)(xi)(xii)(xiv)、および、(xv) に用いた に取って代わって別の関数を用いることも考えられます。これら以外の項には が使われておらず、符号(+や-)の入れ替えのみのバリエーションですのでここでの議論には関係ありません。

6.2.4.a   別の関数として を用いる場合

   別の関数として、例えば、 を用いる場合を考えます。このとき、 を用いている上述の各項において、1個の花の形の曲線を計算するための C++ プログラム中で、ただ1箇所、または、2箇所の記述「 *fabs(cos(f)) 」を「 *cos(f)*cos(f) 」に置き換えるだけでよいのです。
    を用いている 6.2.3 (i)(ii)(iii)(iv)(v)(vi)(vii)(viii)(xi)(xii)(xiv)、および、(xv) の各項の方法に従って、 を用いた場合のC++ シミュレーションが、それぞれ、図164(i)、(ii)、(iii)、(iv)、(v)、(vi)、(vii)、(viii)、(xi)、(xii)、(xiv)、および、(xv)のように得られます。以上、特に変わったシミュレーション結果はないようです。

図164(i)
図164(ii)
図164(iii)
図164(iv)

図164(v)
図164(vi)
図164(vii)
図164(viii)

(クリックすると拡大の線画が現れます)
図164(xi)
図164(xi)

図164(xii)
図164(xiv)
図164(xv)

図164(i) n=5, b=1, c=0.2, d=1.3, e=0.2, k=0.75, l=1

図164(ii) to (xv) n=5, b=1, c=0.2, d=1, e=0.3, k=0.7, l=1

July 29, 2012 and Apr. 04, 2013

    図164(i)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(i)   の計算プログラム flower_x1です。

    図164(ii)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(ii)  の計算プログラム flower_x2です。

    図164(iii)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(iii) の計算プログラム flower_x3です。

    図164(iv)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(iv)  の計算プログラム flower_x4です。

    図164(v)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(v)   の計算プログラム flower_x5です。

    図164(vi)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(vi)  の計算プログラム flower_x6です。

    図164(vii) を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(vii) の計算プログラム flower_x7です。

    図164(viii)を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(viii)の計算プログラム flower_x8です。

    図164(xi)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(xi)  の計算プログラム flower_x11です。

    図164(xii) を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(xii) の計算プログラム flower_x12です。

   図164(xiv)を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(xiv) の計算プログラム flower_x14です。

    図164(xv) を求めるために曲線座標を数値計算する C++ プログラムはこちら 図164(xv)  の計算プログラム flower_x15です。

    以上、画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。

   
May 15, 2013


6.2.4.b   別の関数として を用いる場合

   別の関数として、 を用いる場合を考えます。この場合、前項 6.2.4.a のように、前節 6.2.3 の各項の C++ プログラム中の記述「 *fabs(cos(f)) 」を「 *fabs(sin(f)) 」に置き換え、さらに、(80)式に相当する C++ プログラム中の式を、前節 6.2.3 の次の各項、6.2.3 (ii)(iii)(iv)(v)(vii)(viii)(xi)、および、(xii) 毎に、以下のように変更する必要があります。理由は、中心円の半径が置き換えに影響されて変わるためです。一方、6.2.3 (i)(vi)(xiv)、および、(xv) の各項には変更ありません。


    6.2.3 (ii) では「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1+c); 」に、
   6.2.3 (iii) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1-c); 」に、
   6.2.3 (iv) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1-c); 」に、
   6.2.3 (v) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1+c); 」に、
   6.2.3 (vii) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1+c); 」に、
   6.2.3 (viii) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1-c); 」に、
   6.2.3 (xi) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1+c); 」に、
   6.2.3 (xii) でも「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d; 」を「 y=d*r*(1-c*sin(f)*fabs(sin(f)))*sin(f)+2*a*d*(1-c); 」に変更。

    を用いている 6.2.3 (i)(ii)(iii)(iv)(v)(vi)(vii)(viii)(xi)(xii)(xiv)、および、(xv) の各項の方法に従って、 を用いた場合のC++ シミュレーションが、それぞれ、図165(i)、(ii)、(iii)、(iv)、(v)、(vi)、(vii)、(viii)、(xi)、(xii)、(iv)、および、(v)のように得られます。
   特に、6.2.3 (i) 項の方法による図165(i)、および、6.2.3 (xii) 項の方法による図165(xii)において、 の値を種々変えたときの C++ シミュレーション結果をさらに下の図166(i)、および、図167(xii)に、それぞれ示します。


図165(i)
図165(ii)
図165(iii)

(クリックすると拡大の線画が現れます)
図165(iv)  n=5, b=1, c=0.2, d=1.25, e=0.3, k=0.75, l=1
図165(iv)

図165(v)
図165(vi)
図165(vii)
図165(viii)

(クリックすると拡大の
線画が現れます)
図165(xii)
図165(xi)
図165(xii)

図165(xiv)
図165(xv)

図165 n=5, b=1, c=0.2, d=1.25, e=0.3, k=0.75, l=1

July 31, 2012 and Apr. 04, 2013


(クリックすると拡大の
線画が現れます)
図166(i)b c=0.1; n=5, b=1, d=1.3, e=0.3, k=0.75, l=1
図166(i)a c=0
図166(i)b c=0.1

(クリックすると拡大の
線画が現れます)
図166(i)c c=0.2; n=5, b=1, d=1.3, e=0.3, k=0.75, l=1
図166(i)c c=0.2
(クリックすると拡大の
線画が現れます)
図166(i)d c=0.3
図166(i)e c=0.4

図166(i) n=5, b=1, d=1.3, e=0.3, k=0.75, l=1

Aug. 01, 2012 and Apr. 02, 2013


(クリックすると拡大の
線画が現れます)
図167(xii)c c=0.2; n=5, b=1, d=1.3, e=0.3, k=0.75, l=1
図167(xii)a c=0
図167(xii)b c=0.1
図167(xii)c c=0.2
図167(xii)d c=0.3
図167(xii)e c=0.4

図167(xii) n=5, b=1, d=1.3, e=0.3, k=0.75, l=1

Aug. 02, 2012

    図165(i)、および、図166(i)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(i)   の計算プログラム flower_xx1です。

    図165(ii)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(ii)  の計算プログラム flower_xx2です。

    図165(iii)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(iii) の計算プログラム flower_xx3です。

    図165(iv)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(iv)  の計算プログラム flower_xx4です。

    図165(v)   を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(v)   の計算プログラム flower_xx5です。

    図165(vi)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(vi)  の計算プログラム flower_xx6です。

    図165(vii) を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(vii) の計算プログラム flower_xx7です。

    図165(viii)を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(viii)の計算プログラム flower_xx8です。

    図165(xi)  を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(xi)  の計算プログラム flower_xx11です。

    図165(xii)、および、図167(xii)を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(xii) の計算プログラム flower_xx12です。

    図165(xiv)を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(xiv) の計算プログラム flower_xx14です。

    図165(xv) を求めるために曲線座標を数値計算する C++ プログラムはこちら 図165(xv)  の計算プログラム flower_xx15です。

    以上、画面に表示のCプログラムをマウスでドラッグしてコピーを取ると、自由にご利用できます。

May 15, 2013


6.2.4.c   別の関数として考えられる他の関数

   上記以外に、6.2.3 の各項に用いた に取って代わる別の関数として、 なども考えられます。

July 31, 2012


図168  表題のような花びら
7.   花びらの先端がとがり、花びらの付け根も細くくびれる場合のシミュレーション

   表題のような花びらは以下の方程式群から、を媒介変数として、直交座標にをプロットして得られることを見出しました。それを右図に示します。ただし、

          .                      (96a)
          .                      (96b)
          .                 (96c)
          .                      (96d)
          .                      (96e)
          .                      (96f)
          .                      (96g)


   図168 を求めるために曲線座標を数値計算する C++ プログラムはこちら 図168 の計算プログラム flower_y1です。

   半径の中心円の周りに上記の花びらを個配置します。このときの花全体の位相は、第2節の[2.1の追記II]、[2.2の追記II]、第3節の[3.1.1の追記II]、[3.1.2の追記II]、[3.2の追記II]、および、第6節 6.1.2(ii) 項と同様に考え、以下のように花全体を表します。

          .                      (96h)
          .                      (96i)
          .                      (96j)
          .                      (96k)

   (96j)式、および、(96k)式を計算することにより花の形の (x, y)座標が求められます。こうして得られた図形の例を図169、および、図170に示します。ただし、 としました。



(クリックすると
拡大の線画が現れます)
図169 n=4, a=1, q1=1, q2=2, b=0.1,
d=8, e=0, k=1, l=0.2


(クリックすると
拡大の線画が現れます)
図170 n=4, a=1, q1=1, q2=2, b=0.1,
d=8, e=0, k=1, l=0.2

   図169および図170 を求めるために曲線座標を数値計算する C++ プログラムはこちら 図169および図170 の計算プログラム flower_y1です。

June 17, 2013


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

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


HOME

Updated: 2009.03.11, edited by N. Yamamoto. Revised in July 2nd, 2012, July 09, 2012, July 14, 2012, July 18, 2012, July 22, 2012, July 25, 2012, July 29, 2012, July 31, 2012, Aug. 02, 2012, Sep. 12, 2012, Sep. 16, 2012, Sep. 22, 2012, Oct. 11, 2012, Oct. 17, 2012, Apr. 04, 2013, Apr. 12, 2013, May 09, 2013, May 15, 2013, June 17, 2013, Mar. 16, 2015, May 03, 2020, May 04, 2020, Jan. 06, 2021, Jan. 24, 2021, May 08, 2021, Mar. 16, 2022, Aug. 20, 2022 and 17 May, 2023.