Hướng dẫn tạo hình ảnh dạng hoa văn trong C++ từ hàm toán học Julia Set

Thông tin về hàm Julia Set: http://en.wikipedia.org/wiki/Julia_set


Yêu cầu: Đã cài đặt Code::Blocks 10.05 và đã cấu hình đồ họa cho Code::Blocks. Nếu chưa cài đặt, bạn phải xem 2 bài viết này:
Video kết quả: bạn có thể tải mã lệnh ở bên dưới video này




Mã lệnh:

#include <graphics.h>
#include <conio.h>

#define DIM 800
float scale = 1.5;
struct comp{
float r,i;
comp(float a,float b): r(a),i(b){};
float magnitude2(){
return r*r + i*i;
}
comp operator*(const comp& a){
return comp(r*a.r-i*a.i,i*a.r+r*a.i);
}
comp operator+(const comp& a){
return comp(r+a.r,i+a.i);
}

};

int func(int i,int j){
float ji = scale*(float)(DIM/2-i)/(DIM/2);
float jj = scale*(float)(DIM/2-j)/(DIM/2);
comp c(-0.8,0.156);
comp z(ji,jj);
for(int i=0;i<200;i++){
z = z*z+c;
if (z.magnitude2()>DIM)
return 0;
}
return RED;
}
void draw(){
for(int j=0;j<DIM;j++)
for(int i=0;i<DIM;i++)
putpixel(i,j,func(i,j));

}
int main(){
initwindow(DIM,DIM);
draw();
getch();
return 0;
}

Bài liên quan

Bài liên quan