當前位置:編程學習大全網 - 編程語言 - 木桶算法的形式編程

木桶算法的形式編程

const int MAXVERT = 500

const int MAXPOLYV = 50

const int MAXH = 10;

結構點2D

{float x,y;

};

typedef Point2D頂點[max vert];

enum VerType = {Polygon,Intersection };

typedef結構ClipListRec * ClipPtr

struct ClipListRec

{ int Vindex

ClipPtr next

VerType類;

浮動t;

ClipPtr otherList

}

結構多邊形

{ int nVertex

int vert[MAXPOLYV];

ClipPtr列表;

}

結構多邊形

{多邊形外部;

int numHoles

多邊形孔洞[MAXH];

}

GenPolygon Sub,Clip

int進入[MAXVERT],退出[max vert];

頂點V;

int num vertex = 0;//垂直數組的大小

int clip poly[max vert];//剪輯多邊形

int read point();

CIN & gt;& gtinXCIN & gt;& gtinY

if(num vertex & lt;最大垂直)

{ V[numVertex]。x = inX

V[numVertex]。y = inY

idNo = numVertex

num vertex++;

}

其他

idNo =-1;

返回idNo

}

void readPolygon (GenPolygon p)

CIN & gt;& gtp . exterior . nvertex;

for(I = 0;我& ltp . exterior . nvertex;i++)

{ newId = read point();

if(newId & lt;0)

錯誤

其他

{ insertAtRear (p.exterior.list,newId);

p . exterior . vert[I]= newId;

}

}

//現在用基本相同的方法打孔

。。。

}

//然後“主”程序循環將是(偽代碼)

而(!空(進入))

{ nextInter = delete(輸入);

SEARCH (SubjectPolygon,nextInter,ptr 1);

AddToOutputList(ptr 1-& gt;。。。)

start point = ptr 1-& gt;。。。

ptr 1 = PRT 1-& gt;接下來;

while(ptr 1->;。。。!=起點)

{ AddToOutputList(ptr 1-& gt;。。。);

if(ptr 1->;。。==交集)

ptr 1 = PRT 1-& gt;其他列表-& gt;接下來;

其他

ptr 1 = ptr 1-& gt;接下來;

}

FixListForOutput();

draw polygon();

EmptyOutputList();

}

  • 上一篇:c++可以做什麽
  • 下一篇:莫爾斯電碼裏,用莫爾斯電碼表白?
  • copyright 2024編程學習大全網