/* 程序实现的算法: 用链表来存储边的信息
用 边的数量来判断 边的方位。
*/
#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);