-PR-
締切済み

フラクタルで雲を作る。

  • すぐに回答を!
  • 質問No.14510
  • 閲覧数450
  • ありがとう数13
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 0% (0/3)

JAVAを使って、フラクタルで雲を作成したいんです。
作成の仕方をどなたか伝授して下さい、、、、。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 26% (511/1924)

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


  • 回答No.2
レベル3

ベストアンサー率 0% (0/1)

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

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

インストール方法が不明の場合下記のURLで
わかりやすく説明しています。
  • 回答No.3
レベル7

ベストアンサー率 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);

};

}
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ