フラクタルの木
をテンプレートにして作成
home
>
サイトマップ
開始行:
RIGHT:寄稿:東條遼平
* フラクタル [#ed8f0392]
上のアプレットはフラクタルを利用して描いた木です。リロー...
フラクタルには難しそうな定義があるのですが、直感的に自己...
フラクタルです。例えば海岸の波打ち際などは、上空から見た...
形はよく似ています。つまりどんなスケールで観測しても同じ...
これは自然の物によく見られる特徴で、上のアプレットもそれ...
木も幹から枝が分かれ、そこからまた枝が分かれています。最...
葉もよく見ると葉脈などがそのようになっています。
同じ特徴が続くというのはプログラムを作る側からすると大変...
再帰を使う事でたったの数行で記述する事ができます。
上に表示されている木もよく見ると同じ点から分かれた2つの枝...
それではソースコードを見てみます。
public void fractal(Graphics g,int x,int y,
int degree,int loopnum,int length){
int nextX, nextY;
nextX = x + (int)(Math.cos(Math.toRadians((double)degr...
nextY = y - (int)(Math.sin(Math.toRadians((double)degr...
g.drawLine(x, y, nextX, nextY);
if(loopnum!=0){
fractal(g, nextX, nextY, degree - right,
loopnum - 1, (int)(length *...
fractal(g, nextX, nextY, degree + left,
loopnum - 1, (int)(length *...
}
}
エンジン部分はこれだけです。xとyはこれから描画する線の始...
degreeは角度です。数学でよく見る普通のx-y座標系を考えてく...
y軸は上下逆さまになっていることに注意する必要があります。...
90度を指定すれば良いです。lengthは描画する線の長さです。
loopnumは再帰の深さを指定することになります。これが無いと...
できず、スタックがオーバーフローします。終了条件を決める...
終了条件を満たさない間はひたすら再帰を繰り返します。
rightはこれから描く右側の枝と今描いた枝とのなす角で、右側...
角度が小さくなるので引き算をし、左側は角度が大きくなるの...
最後にlengthに0.8を掛けているのは、同じ大きさだと先が葉に...
好きに変更して構いません。
最後にもう一つフラクタルの木を紹介します。
特に説明はしませんが、やってることは上の木と同じです。
ソースコードは下に載せておきます。
- &ref(Tree.java);
- &ref(Tree2.java);
終了行:
RIGHT:寄稿:東條遼平
* フラクタル [#ed8f0392]
上のアプレットはフラクタルを利用して描いた木です。リロー...
フラクタルには難しそうな定義があるのですが、直感的に自己...
フラクタルです。例えば海岸の波打ち際などは、上空から見た...
形はよく似ています。つまりどんなスケールで観測しても同じ...
これは自然の物によく見られる特徴で、上のアプレットもそれ...
木も幹から枝が分かれ、そこからまた枝が分かれています。最...
葉もよく見ると葉脈などがそのようになっています。
同じ特徴が続くというのはプログラムを作る側からすると大変...
再帰を使う事でたったの数行で記述する事ができます。
上に表示されている木もよく見ると同じ点から分かれた2つの枝...
それではソースコードを見てみます。
public void fractal(Graphics g,int x,int y,
int degree,int loopnum,int length){
int nextX, nextY;
nextX = x + (int)(Math.cos(Math.toRadians((double)degr...
nextY = y - (int)(Math.sin(Math.toRadians((double)degr...
g.drawLine(x, y, nextX, nextY);
if(loopnum!=0){
fractal(g, nextX, nextY, degree - right,
loopnum - 1, (int)(length *...
fractal(g, nextX, nextY, degree + left,
loopnum - 1, (int)(length *...
}
}
エンジン部分はこれだけです。xとyはこれから描画する線の始...
degreeは角度です。数学でよく見る普通のx-y座標系を考えてく...
y軸は上下逆さまになっていることに注意する必要があります。...
90度を指定すれば良いです。lengthは描画する線の長さです。
loopnumは再帰の深さを指定することになります。これが無いと...
できず、スタックがオーバーフローします。終了条件を決める...
終了条件を満たさない間はひたすら再帰を繰り返します。
rightはこれから描く右側の枝と今描いた枝とのなす角で、右側...
角度が小さくなるので引き算をし、左側は角度が大きくなるの...
最後にlengthに0.8を掛けているのは、同じ大きさだと先が葉に...
好きに変更して構いません。
最後にもう一つフラクタルの木を紹介します。
特に説明はしませんが、やってることは上の木と同じです。
ソースコードは下に載せておきます。
- &ref(Tree.java);
- &ref(Tree2.java);
ページ名:
home
>
Modified by
物理のかぎプロジェクト
PukiWiki 1.4.5_1
Copyright © 2001-2005
PukiWiki Developers Team
. License is
GPL
.
Based on "PukiWiki" 1.3 by
yu-ji
Powered by PHP 5.3.29HTML convert time to 0.002 sec.