プロが教える店舗&オフィスのセキュリティ対策術

JAVAを使って、フラクタルで雲を作成したいんです。
作成の仕方をどなたか伝授して下さい、、、、。

A 回答 (3件)

検索してみました?


「JAVA フラクタル」で検索すれば、かなりの数があります。
普通に説明しようとすると、まずフラクタルについての話になっちゃうので、エラく長文になるでしょうから、とりあえずオススメの検索サイトを>参考URL

参考URL:http://www.google.com/
    • good
    • 0

JDKをインストールしていましたら


下記にフラクタルのデモ用のアプレットが
あります。もちろんソースコードも参照できます。
このコードをみればフラクタルの構造がわかるはずです。

jdkのインストール先がCドライブの場合
C:\jdk1.3\demo\applets\Fractal

インストール方法が不明の場合下記のURLで
わかりやすく説明しています。

参考URL:http://www3.ocn.ne.jp/~syosai
    • good
    • 0

 一応作ってみました。

これ、雲に見えます?(^^;)

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);

};

}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!