アンモナイト!
|
既に書いたように、先日、長野県の石堂層で化石採集をして参りました。 …やはり完全体のアンモナイトくんには出会えませんでした(-o-i) こちらのアンモナイト図形はとても有名で、web上でも見かけますし、 フラクタル についての啓蒙書やテキストに掲載されています。 でもyahooブログ上には私の見た限り取り上げている記事はありませんでした。 そういうことなら私が一番乗り!…ということで。 図形を生成する数式については下のソースコードからご解読ください(>_<) (x,y)平面上に出発点を与えておいて、 ある確率に従って3種類のアフィン変換を繰り返していくと このような図形が出現するわけなんです。 プログラムはC言語やJavaで書く方が適当なのでしょうけど、 一部、 Excelマニア(?) の方々がVBAで頑張っておられるので 私もインスパイアされてExcelでやってみました(^o^i) 表計算やVBAで数値計算する、みたいな書籍は最近かなり出版されていますよね。 Excelでゲームを作っている方々もいるようですし…。 実用的な科学技術計算に向いているとは言えないかも知れませんが、 やってみるとExcelもかなり面白いですヨ(^o^)/ 興味を持たれた方へ〜
ソースコードは以下の通りです。Microsoft社のExcelさえあれば動かせます。 コンパラをインストールする必要はありません☆ Excelを立ち上げたならツールメニューからマクロ→Visual Basic Editorを起動し、 ソースコードを貼り付けて「実行」するだけ。 シート上のA列、B列に数値が出力されますので(かなり多いです。3万行)、 すべて選択してグラフウィザードから「散布図」を指定します。 するとこんな図形が現れるはずです。(ちょっと説明足りないかもしれませんm(_ _)m) Sub DRAW_AMMONITE()
Dim x As Double: Dim y As Double
Dim xnew As Double: Dim ynew As Double
Dim n As Long: Dim k As Double
x = 0.1
y = 0.1 'x,yに初期値を代入
Cells(1, 1) = x
Cells(1, 2) = y '初期値を出力
For n = 1 To 30000
Randomize: k = Rnd()
If k < 0.06124 Then
xnew = -0.289993 * x - 0.001347 * y + 0.593333
ynew = 0.001986 * x - 0.196662 * y - 0.32
ElseIf k >= 0.06124 And k < 0.06124 + 0.022236 Then
xnew = -0.073058 * x - 0.024834 * y + 0.793333
ynew = -0.006353 * x + 0.285589 * y - 0.056667
Else
xnew = 0.939186 * x - 0.218787 * y - 0.046667
ynew = 0.214337 * x + 0.958685 * y + 0.01
End If
Cells(n + 1, 1) = xnew
Cells(n + 1, 2) = ynew
x = xnew
y = ynew
Next n
End Sub
|
トラックバック(1)
トラックバックされた記事
トラックバック先の記事
- トラックバック先の記事がありません。



へえ〜!器用な事してますね〜。私ではこうは行きません(えっへん!)また今度≪石堂アンモ≫のこんな綺麗なヤツをお見せくださいね・・・(*^^)v
2006/11/25(土) 午後 7:36 [ ]
UNIONさんこんばんは!こんな人造アンモではなくホンモノをupしたいのはやまやまなのですが(泣) ほんとうに産出が少ないのです。カケラアンモのストックならまだありますので少しずつアップしてまいります。
2006/11/25(土) 午後 10:37 [ catappledog ]
緻密、規則性ー不器用な私はとても描けません。傑作です。
2007/3/1(木) 午後 7:13 [ ]
うきくささんこんにちは!いえいえ、この数式自体とても有名なものですので、私のオリジナリティなんてほどんどないんです^^i 私はこんな感じの幾何学模様にしばしば心奪われます
2007/3/2(金) 午後 0:14 [ catappledog ]
本当にアンモナイトのデザインそのものズバリですね。フラクタルでアンモナイトが描けるとは驚きです。
2010/5/17(月) 午前 2:15 [ kipccl ]
kipcclさん、こんばんは。生物を支配している数理は興味深いものです。もうちょっと高度な数理モデルについても紹介していきたいと思います
2010/5/22(土) 午後 11:23 [ catappledog ]