分形--朱利亚集合图形1

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

/*zc为实数*/

#include "glib.h"
#define KL 200
#define BOX 0.01
#define STEP 1
int sx,sy,dx=192,dy=192;
/*描绘区域*/
double x_min=-2.0,x_max=2.0,y_min=-2.0,y_max=2.0;
double x0,y0,xc=-1.35,yc=0.0;  /*复数常量*/
double 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);
  putpixel(-sx,-sy,col);
  putpixel(-sx,sy,col);
}

void julia(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]+xc;  /*实部*/
 y[k]=2*x[k-1]*y[k-1]+yc;              /*虚部*/
 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/4;sx<dx;sx+=dx/4)
  {
 setlinestyle(4,0x1111,1);
 line(sx,-dy,sx,dy);
  }
  for (sy=-dy+dy/4;sy<dy;sy+=dy/4)
  {
 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的初值*/
   julia();
 }
  }
  /*描画区域的显示*/
  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);
  /*复数的显示*/
  printf("xc =%6.2f\n",sx);
  printf("yc =%6.2f\n",yc);
  gend();
}

相关文章
|
8月前
|
SQL 定位技术 API
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
89 0
|
4月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(15)形状连线(ShapeLink)四种类型(直线、正交、二次贝塞尔、三次贝塞尔)
本文介绍了Twaver HTML5中的形状连线(ShapeLink),包括如何使用它以及如何添加控制点。文章详细解释了ShapeLink支持的四种连线类型:直线(lineto)、正交(orthogonalto)、二次贝塞尔曲线(quadto)和三次贝塞尔曲线(cubicto),并通过示例代码展示了如何在React组件中创建和配置ShapeLink。
62 3
|
6月前
|
图形学 Python
Python绘制动态树形:实现分形树动画
Python绘制动态树形:实现分形树动画
104 0
|
8月前
|
存储 算法 图形学
【计算机图形学】实验二 用扫描线算法实现多边形填充
【计算机图形学】实验二 用扫描线算法实现多边形填充
259 2
|
数据可视化 数据挖掘
常用 7 大类型图形可视化——排序关系图形
常用 7 大类型图形可视化——排序关系图形
170 0
|
JSON 前端开发 数据可视化
【图形基础篇】02 # 指令式绘图系统:如何用Canvas绘制层次关系图?
【图形基础篇】02 # 指令式绘图系统:如何用Canvas绘制层次关系图?
204 0
【图形基础篇】02 # 指令式绘图系统:如何用Canvas绘制层次关系图?
|
XML 前端开发 数据可视化
【图形基础篇】03 # 声明式图形系统:如何用SVG图形元素绘制可视化图表?
【图形基础篇】03 # 声明式图形系统:如何用SVG图形元素绘制可视化图表?
136 0
【图形基础篇】03 # 声明式图形系统:如何用SVG图形元素绘制可视化图表?
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
388 0
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
python读取excel数据、转换度分为度,绘制填色图
python读取excel数据、转换度分为度,绘制填色图
|
计算机视觉
Qt实用技巧:图形视图框架中图元将矩形边界改为不规则边界(用于选取和碰撞)
Qt实用技巧:图形视图框架中图元将矩形边界改为不规则边界(用于选取和碰撞)