- 締切済み
フラクタルで雲を作る。
JAVAを使って、フラクタルで雲を作成したいんです。 作成の仕方をどなたか伝授して下さい、、、、。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
一応作ってみました。これ、雲に見えます?(^^;) import java.awt.*; import java.awt.image.*; class fractalcanvas extends Canvas implements Runnable { private Graphics G; private BufferedImage ImageBuf; private static final double P[] = {0.8,0.0,0.0,0.3,-0.8,0.0,0.0,-0.3,0.8,0.0}; private double Q[]; private int PL, PC; public fractalcanvas() { super(); String Str1[], Str2[]; int Int1, Int2; ImageBuf = new BufferedImage(400, 400, BufferedImage.TYPE_INT_ARGB); G = ImageBuf.getGraphics(); run(); }; public void paint(Graphics g) { if (isVisible()) g.drawImage(ImageBuf, 0, 0, this); }; public void update(Graphics g) { paint(g); }; private int DTI(double d) { return((int)(d * 200) + 200); }; private void Calc(double x1, double y1, double x2, double y2) { double T, Re, Xo, Yo, R[] = new double[10]; int i; R[0]=x1; R[1]=y1; R[8]=x2; R[9]=y2; Xo=x2-x1; Yo=y2-y1; Re=Math.sqrt(Xo*Xo+Yo*Yo) / 3; R[2]=x1+Xo/3; R[3]=y1+Yo/3; R[6]=x2-Xo/3; R[7]=y2-Yo/3; T = Math.PI*2/3; if (Math.random() > 0.3) T = -T; T = Math.atan2(y1-R[3], x1-R[2]) - T; R[4]=Re*Math.cos(T)+R[2]; R[5]=Re*Math.sin(T)+R[3]; if (PL >= 4) for(i=0;i<8;i++) Q[PC++]=R[i]; else { PL++; for(i=0;i<8;i+=2) Calc(R[i], R[i+1], R[i+2], R[i+3]); PL--;}; }; public void run() { int i; Q = new double[(P.length - 2) * 1024 + 2]; PC = 0; PL = 0; for(i=0;i<P.length-2;i+=2) Calc(P[i], P[i+1], P[i+2], P[i+3]); Q[PC++]=P[i]; Q[PC++]=P[i+1]; G.setColor(Color.BLACK); for (i=0;i<Q.length-2;i+=2) { G.drawLine(DTI(Q[i]), DTI(Q[i+1]), DTI(Q[i+2]), DTI(Q[i+3])); }; }; } public class fractal { public static void main(String args[]) { Frame MF = new Frame("Fractal"); MF.add(new fractalcanvas()); MF.setSize(450, 450); MF.setVisible(true); }; }
- ryuko
- ベストアンサー率0% (0/1)
JDKをインストールしていましたら 下記にフラクタルのデモ用のアプレットが あります。もちろんソースコードも参照できます。 このコードをみればフラクタルの構造がわかるはずです。 jdkのインストール先がCドライブの場合 C:\jdk1.3\demo\applets\Fractal インストール方法が不明の場合下記のURLで わかりやすく説明しています。
- shigatsu
- ベストアンサー率26% (511/1924)
検索してみました? 「JAVA フラクタル」で検索すれば、かなりの数があります。 普通に説明しようとすると、まずフラクタルについての話になっちゃうので、エラく長文になるでしょうから、とりあえずオススメの検索サイトを>参考URL
- 参考URL:
- http://www.google.com/