一聚教程网:一个值得你收藏的教程网站

热门教程

koch 雪花的非递规 实现

时间:2022-07-02 10:57:35 编辑:袖梨 来源:一聚教程网


/* 程序实现的算法: 用链表来存储边的信息

  用 边的数量来判断 边的方位。

 */

 #include
 #include
 #include
 #include
 #include

 #define  Left  0   //  方向常量
 #define  Right  1
 #define  Bottem  2

 #define fcolor   1
 #define bkcolor   0
 #define N   10
 #define PD   M_PI/180

 typedef struct Point//  定义节点
     {
     float x;
     float y;
     }Point;
 typedef struct Elegs//  定义边
     {
     Point a;
     Point b;
     struct Elegs *next;
     }Elegs;

 
 Elegs *head;
 int n = 0 , Trend;//  Trend 方向性 指示变量, n为边的总数

 /*函数说明*/

 void Init();
 void Init_draw(int x,int y,int len ,int du);//  初始化 画三角形
 void Draw(Point a,Point b,int du , int bool);//  具体实现画边
 void Check_trand(int i); //  检测边的方向性
 void show(Elegs *head,int du);//  链表用以动态存储 边的信息
 void End();

 Elegs *New();
 Elegs *Add(Elegs *head,Point a,Point b);
 Elegs *freelink(Elegs *head);

void Init()
 {
  int gd=DETECT,gm,ec;
  Elegs *p;

  initgraph(&gd,&gm,"d:tc3bgi");
  ec = graphresult();
  if(ec !=grOk)
 {
 printf("The graphic error:");
 printf("%s ",grapherrormsg(ec));
 printf("Key any to halt:");
 getch();
 exit(0);
 }
  setbkcolor(bkcolor);
  setcolor(fcolor);
  Trend = 0;

  p = New();
  head = p;
  p->next = NULL;
  };//  Init

 void Init_draw (int x,int y,int len, int du)
 {
  int x1,x2,y1,y2;
  Point a,b,c;
  Elegs *p;

  x1 = x - len* cos((60+du)*M_PI/180);
  y1 = y + len* sin((60+du)*M_PI/180);

热门栏目