フラクタルの数値計算例(C言語) |
- プログラムソース
乱数を利用してシェルピンスキーギャスケットを描く。
#include <stdio.h>
#include <stdlib.h>
#define n 50000 //繰り返し回数
#define seed 1127 //乱数発生パターンを変えるタネ
int main()
{
int i,m;
double a[3]={0.0,100.0,100.0},b[3]={0.0,0.0,100.0}; //はじめの三角形
double x,y,r;
x=1.0; //はじめの三角形の内部ならどこから始めてもよい
y=2.0;
FILE *output;
output=fopen("output.data","w");
srand(seed);
for(i=0;i<n;i++) {
r=rand()/(RAND_MAX+1.0); //0~1の間の乱数を発生
if(r<1.0/3.0) m=0;
else if(r>=1.0/3.0 && r<2.0/3.0) m=1;
else m=2;
x=(x+a[m])/2.0;
y=(y+b[m])/2.0;
fprintf(output,"%f %f\n",x,y);
}
fclose(output);
return 0;
}
- GNUPLOT出力結果
|
|
|
|
|
|