分形--曼德尔波集合图形

简介: #include "glib.h"#define KL 200#define BOX 0.01#define STEP 1int sx,sy,dx=192,dy=192;/*描绘区域*/double x_min=-2.

#include "glib.h"
#define KL 200
#define BOX 0.01
#define STEP 1
int sx,sy,dx=192,dy=192;
/*描绘区域*/
double x_min=-2.25,x_max=0.75,y_min=-1.5,y_max=1.5;
double x0,y0,a1,b1,a2,b2;

void coord(void)
{
  a1=(x_max-x_min)/(2*dx);
  b1=(x_max+x_min)/2;
  a2=(y_max-y_min)/(2*dy);
  b2=(y_max+y_min)/2;
}

void plot(int col)
{
  putpixel(sx,-sy,col);
  putpixel(sx,sy,col);
}

void mandelbrot(void)
{
  int k;
  double s;
  static double x[KL+1],y[KL+1];
  x[0]=x0;   y[0]=y0;
  for (k=1;k<=KL;k++)
  {
 x[k]=x[k-1]*x[k-1]-y[k-1]*y[k-1]+x0;  /*实部*/
 y[k]=2*x[k-1]*y[k-1]+y0;              /*虚部*/
 s=x[k]*x[k]+y[k]*y[k];
 if (s>=4.0)
   return;
  }
  for (k=1;k<=13;k++)    /*周期点数计算*/
  {
 if (fabs(x[KL]-x[KL-k])<BOX && fabs(y[KL]-y[KL-k])<BOX)
 {
   plot(k);
   return;
 }
  }
  plot(15);
}

void main()
{
  ginit();
  setpalette(8,14);
  set0(320,200);
  coord();
  /*坐标轴的描画*/
  setcolor(7);
  rectangle(-dx,-dy,dx,dy);
  for (sx=-dx+dx/6;sx<dx;sx+=dx/3)
  {
 setlinestyle(4,0x1111,1);
 line(sx,-dy,sx,dy);
  }
  for (sy=-dy+dy/3;sy<dy;sy+=dy/3)
  {
 setlinestyle(4,0x1111,1);
 line(-dx,sy,dx,sy);
  }
  for (sx=0;sx<=dx;sx+=STEP)
  {
 x0=a1*sx+b1;     /*x的初值*/
 for (sy=0;sy<=dy;sy+=STEP)
 {
   y0=a2*sy+b2;   /*y的初值*/
   mandelbrot();
 }
  }
  /*描画区域的显示*/
  printf("\nx_min =%51.f\n",x_min);
  printf("x_max =%5.1f\n",x_max);
  printf("y_min =%5.1f\n",y_min);
  printf("y_max =%5.1f\n",y_max);
  gend();
}

相关文章
|
4月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(15)形状连线(ShapeLink)四种类型(直线、正交、二次贝塞尔、三次贝塞尔)
本文介绍了Twaver HTML5中的形状连线(ShapeLink),包括如何使用它以及如何添加控制点。文章详细解释了ShapeLink支持的四种连线类型:直线(lineto)、正交(orthogonalto)、二次贝塞尔曲线(quadto)和三次贝塞尔曲线(cubicto),并通过示例代码展示了如何在React组件中创建和配置ShapeLink。
62 3
|
8月前
|
算法 图形学
【计算机图形学】实验四 二维图形的缩放、旋转,平移,组合变换
【计算机图形学】实验四 二维图形的缩放、旋转,平移,组合变换
361 2
|
8月前
|
存储 算法 图形学
【计算机图形学】实验二 用扫描线算法实现多边形填充
【计算机图形学】实验二 用扫描线算法实现多边形填充
259 2
|
Java
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
288 0
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
|
图形学
【计算机图形学】期末复习part2:二维与三维图形变换
【计算机图形学】期末复习part2:二维与三维图形变换
213 0
【计算机图形学】期末复习part2:二维与三维图形变换
|
算法 图形学
【计算机图形学】实验三:二维图形变换
【计算机图形学】实验三:二维图形变换
280 0
【计算机图形学】实验三:二维图形变换
|
机器学习/深度学习 算法 图形学
【计算机图形学】实验一:二维图形绘制
【计算机图形学】实验一:二维图形绘制
250 0
【计算机图形学】实验一:二维图形绘制
|
机器学习/深度学习 传感器 编解码
基于二维连续小波变换条纹图相位提取方法附matlab代码
基于二维连续小波变换条纹图相位提取方法附matlab代码
|
存储 Python
python绘图--由逐日风场数据计算月平均风场数据并绘制二维填色图
python绘图--由逐日风场数据计算月平均风场数据并绘制二维填色图
python绘图--由逐日风场数据计算月平均风场数据并绘制二维填色图