プログラミングのスケッチブック

1999.02.25(初版) 2004.01.02 更新


 このページでは、プログラミングのテクニックというよりもむしろ、プログラミ 
ングの対象そのものについての観察が主題です。

[目次] 

#1.ボールの衝突運動のシミュレーション 

 幾つかのボールが完全弾性衝突を繰り返しながら運動するシミュレーション・ 
プログラムを考えます。 
 下の絵は、ここで取り上げるプログラムのバリエーションの1つです。上の部 
分は、ボールの衝突現象の様子をシミュレートしたもので、下の部分に個々のボ 
ールのエネルギーの時間変化をプロットしています。 
 衝突時のボールの速度、質量や衝突角度によって、相手にエネルギーを与えた 
り、もらったりする様子が観察できます。単純な現象ですが意外に楽しめます。 

ボールの衝突とエネルギー #2.ライフゲーム  Conwayのライフゲームです。単純なルールから複雑なパターンをつくりだす様 子を描くゲームとして知られています。下の絵はある種(タネ)から世代変化し てゆく生命体の様子を描いています。生きている生命体を白色で示し、死んだ生 命体を世代ごとに別の色を付け足跡を記しています。すると、斜め右下に向かっ て直線状に沿って進むグライダーと呼ばれるパターンが現れます。

ライフゲーム #3.マンデルブロー集合  マンデルブロー集合の細部をどんどん拡大して描くプログラムを書きます。 B.B.マンデルブローがフラクタル構造を発見した当時と比べると、著しく高性能に なったコンピュータを活かして、フラクタル図形を手軽に楽しみましょう。

マンデルブロー集合の細部 マンデルブロー集合の細部 #4.内分点と画像の拡大・縮小  内分点の求め方は高校の数学で学びますが、これが画像を拡大したり縮小する ときのアルゴリズムの原理の1つです。ここでは、実際にプログラムを実装して その原理と性能を確かめます。  さらに発展させると、次のような画像を描くこともできます。これは、平面に 描かれた世界地図を球面に貼り付けて、それを平面に射影したものです。

地球

Copyright(c) 1999-2004 Yamada,K