• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:あるフラクタル系の数理モデルを作りたい)

フラクタル系数理モデル作成

このQ&Aのポイント
  • 100×100の正方形表示エリア内で、重ならない5種類の円を複数表示し、拡大縮小を繰り返しても円のサイズと数のバランスを保つ数理モデルを作りたい。
  • 円のサイズは1段拡大するごとに1ずつ増え、サイズ5の円は消えて新しいサイズ1の円が追加表示される。バランスを保つロジックについてアドバイスを求めています。
  • ソフトウェアで実現する前に、フラクタル系数理モデルのロジックについて行き詰っています。皆さんのアイデアや助力をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

「表示を1段拡大する」というのは、最大の円が消えて最小の円が現れる、ということを除けば地図を拡大表示するのと同じ(円が拡大されるのと同じ比率で、円の中心点同士の間隔も拡大される)ということでしょうかね。ならば、まず地図のように拡大し、それから最大サイズ(サイズ6)の円を消し、サイズ1の円を生成する、ということをすれば良い。仮にそうだとしますと、拡大率をaとして、サイズkの円の半径r[k]は等比数列   r[k] = (a^(k-1))r[1] でなくてはならない。また画面内に平均N[k-1]個あったサイズk-1の円は、拡大によって平均   N[k] = N[k-1]/(a^2) 個に減る。なので、円の平均個数もまた   N[k] = N[1]/(a^(2(k-1))) という等比数列に従わねばならない。ということは、   N[1] = (a^10)N[6] である。だから消されるサイズ6の円1個あたり、サイズ1の円を (a^10)個生成する。  ただし、サイズ6の円の一部が画面からはみ出している場合、それを1個と数えたのでは具合が悪い。サイズ6の円が画面内に入っている部分の面積を計算して、たとえばN[6]=2.56(サイズ6の円が2.56個ある)のように端数を含めて数えなくちゃいけません。  さて、生成されるサイズ1の円だって部分的に画面からはみ出す。なので、生成する際に端っこにある円の面積を勘案しなくちゃいけません。この部分のメンドクサい処理と「重ならないように」の部分は、腕をふるっていただきましょう。

utilutil
質問者

補足

ご回答ありがとうございます。 ただ、それだけだとうまく行かないのです。 例として、サイズ5が1個、サイズ4が2個、サイズ3が4個、サイズ4が8個、サイズ1が16個の等比級数が初期値だとします。 単純に1段拡大すると、サイズ6が1個、サイズ5が2個、サイズ4が4個、サイズ3が8個、サイズ2が16個、サイズ1が32個となります。 ですが実際には、サイズ6は消え、そのスペース分だけサイズ1が追加されますので、例えば4個追加されるとすると円の数は、サイズ5が2個、サイズ4が4個、サイズ3が8個、サイズ2が16個、サイズ1が36個となります。 そしてこれは当然ながら等比級数ではないわけです。 ここで行き詰っております。

その他の回答 (1)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.2

ANo.1へのコメントについて。  ANo.1で念を押したんですが、「地図を拡大表示するのと同じ」ように拡大するんですよね?  拡大すれば、円の中心点同士の間隔も広がる。つまり、画面上の円の多くが、拡大によって画面からはみ出して見えなくなる。このことをお忘れじゃないかな?実際に手作業で例を描いてみてお考えになるのが宜しかろう。  なお、ANo.1は、円の個数が等比級数に従うと言っているのではない。個数の平均についての話です。  ところで、 > 実際には、サイズ6は消え、そのスペース分だけサイズ1が追加されますので、例えば4個追加されるとすると というクダリに関しては、一体何が「4個追加される」と仰るんだか、はて、さっぱり分かりません。

utilutil
質問者

お礼

詳しく説明していただきありがとうございます。

関連するQ&A