• 大小: 59.42 KB
    文件类型: .rar
    金币: 1
    下载: 1 次
    发布日期: 2024-08-31
  • 语言: C/C++
  • 标签:

资源简介

该程序点击鼠标左键是为多边形添加顶点,顶点添加完成后点击右键即可填充!目前个人已经测试可以填充凹多边形,如果下载的朋友发现什么地方运行不对请及时回复本人(希望能够把运行不对时候整个屏幕拷下来,这样方便本人查找问题,谢谢)!

资源截图

代码片段和文件信息

// Edge.cpp: implementation of the CEdge class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “MulFillRect.h“
#include “Edge.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEdge::CEdge()
{
x=0;
ymax=0;
deltax=0;
HLine=FALSE;
nextEdge=NULL;
}

/*CEdge::Edge(CEdge&edge)
{

}*/

CEdge::~CEdge()
{
/*int i=GetLength(this);
for(;i>0;i--)
DelEdge(thisi);*/


}


BOOL CEdge::AddEdge(CEdge*headCEdge*edge)
//在分类链表中添加一条边对每一条边按x的值进行排序
{
CEdge *s=new CEdge();
//CEdge *s=edge;
s->deltax=edge->deltax;
s->HLine=edge->HLine;
s->x=edge->x;
s->ymax=edge->ymax;
/*s=edge;*/
CEdge *p=head;
while(NULL!=p->nextEdge && s->x>=p->nextEdge->x)
{
p=p->nextEdge;
}
if(NULL==p->nextEdge)
p->nextEdge=s;
else
{
s->nextEdge=p->nextEdge;
p->nextEdge=s;
}

return true;
}
BOOL CEdge::InsertEdge(CEdge*headint nCEdge*edge)
//在分类链表中插入一条边
{
return true;
}

BOOL CEdge::DelEdge(CEdge*headint n)
//从分类链表中删除一条边
{
int j=1;
if(n<1 || n>GetLength(head)+1)
return FALSE;
CEdge *p*q;
p=head;
for(;j p=p->nextEdge;
q=p->nextEdge;
p->nextEdge=q->nextEdge;
delete q;
return true;
}

CEdge  *CEdge::DelEdge(CEdge *headCEdge *edge)
{
CEdge *p*q;
p=head;
for(;p->nextEdge!=NULL;)
{
if(p->nextEdge->x==edge->x 
&& p->nextEdge->ymax==(edge->ymax))
{
q=p->nextEdge;
break;
}
else
p=p->nextEdge;
}//在链表中查找该结点
if(NULL==p->nextEdge)
return NULL;
p->nextEdge=q->nextEdge;

delete q;
return p->nextEdge;

}

BOOL CEdge::ListSort(CEdge*head)
//按x的值给链表排序
//使用冒泡排序方法
{
int i=GetLength(head);
CEdge *temp1;
temp1=head;
CEdge *temp2;
temp2=temp1->nextEdge;
if(temp2==NULL)
return true;
CEdge *temp3;
temp3=temp2->nextEdge;
CEdge *temp5;
CEdge *temp4;
temp4=head;
temp5=head;
int check=0;
for(int j=0;j {
while(temp3!=NULL)
{
if(temp3->xx)
{
check++;
temp4=temp3;//先记下要前移的结点
temp5=temp3;
temp2->nextEdge=temp5->nextEdge;
temp4->nextEdge=temp2;
temp1->nextEdge=temp4;
//通过链表的指针移动进行排序
}
temp1=temp1->nextEdge;
temp2=temp1->nextEdge;
temp3=temp2->nextEdge;
//临时变量均向指向下一个结点
}
temp1=head;
//一次冒泡排序结束,进行下一次排序
if(0==check)
break;
else check=0;
}
return true;
}

int CEdge::GetLength(CEdge*head)
//得到链表的长度
{
//得到链表长度有问题
int i=0;
CEdge *p=head->nextEdge;
while(p!=NULL)
{
i++;
p=p->nextEdge;
}
return i;
}

int CEdge::OnCreate(CPoint begPointCPoint endPoint)
//根据起点和终点构建条边,返回边的下端点
{
int ymin=0;

HLine=FALSE;
nextEdge=NULL;
CPoint tempPoint;
if(begPoint.y>endPoint.y)
{
tempPoint=b

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        403  2009-04-07 19:21  多边形填充扫描线算法\res\MulFillRect.rc2

     文件       1078  2009-04-07 19:21  多边形填充扫描线算法\res\MulFillRectDoc.ico

     文件       1078  2009-04-07 19:21  多边形填充扫描线算法\res\MulFillRect.ico

     文件       1078  2009-04-07 19:21  多边形填充扫描线算法\res\Toolbar.bmp

     文件       4221  2009-04-16 19:31  多边形填充扫描线算法\Edge.cpp

     文件       1512  2009-04-16 18:25  多边形填充扫描线算法\Edge.h

     文件       6023  2009-04-16 19:51  多边形填充扫描线算法\EdgeNet.cpp

     文件       1156  2009-04-08 19:29  多边形填充扫描线算法\EdgeNet.h

     文件       2512  2009-04-07 19:21  多边形填充扫描线算法\MainFrm.cpp

     文件       1581  2009-04-07 19:21  多边形填充扫描线算法\MainFrm.h

     文件      28880  2009-04-09 20:18  多边形填充扫描线算法\MulFillRect.aps

     文件       2301  2009-04-09 20:54  多边形填充扫描线算法\MulFillRect.clw

     文件       4382  2009-05-24 00:22  多边形填充扫描线算法\MulFillRect.cpp

     文件       5034  2009-04-07 22:37  多边形填充扫描线算法\MulFillRect.dsp

     文件        530  2009-04-07 19:21  多边形填充扫描线算法\MulFillRect.dsw

     文件       1411  2009-04-07 19:21  多边形填充扫描线算法\MulFillRect.h

     文件     230400  2009-05-24 00:24  多边形填充扫描线算法\MulFillRect.ncb

     文件      49664  2009-05-24 00:24  多边形填充扫描线算法\MulFillRect.opt

     文件       4044  2009-05-24 00:23  多边形填充扫描线算法\MulFillRect.plg

     文件      10623  2009-04-07 19:21  多边形填充扫描线算法\MulFillRect.rc

     文件       1842  2009-04-07 19:21  多边形填充扫描线算法\MulFillRectDoc.cpp

     文件       1530  2009-04-07 19:21  多边形填充扫描线算法\MulFillRectDoc.h

     文件       7938  2009-05-05 11:03  多边形填充扫描线算法\MulFillRectView.cpp

     文件       2305  2009-05-05 10:36  多边形填充扫描线算法\MulFillRectView.h

     文件       2376  2009-04-09 08:07  多边形填充扫描线算法\MulPoint.cpp

     文件       1024  2009-04-07 21:09  多边形填充扫描线算法\MulPoint.h

     文件       4431  2009-04-07 19:21  多边形填充扫描线算法\ReadMe.txt

     文件        499  2009-04-07 19:21  多边形填充扫描线算法\Resource.h

     文件        213  2009-04-07 19:21  多边形填充扫描线算法\StdAfx.cpp

     文件       1054  2009-04-07 19:21  多边形填充扫描线算法\StdAfx.h

............此处省略6个文件信息

评论

共有 条评论