求解决计算机图形学中多边形的生成(任意及多边形)的生成代码

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:09:32
求解决计算机图形学中多边形的生成(任意及多边形)的生成代码
最好是在TC中实现的,谢谢各位大师了
回答的好还会加分的!!
(我等级在那,不用担心!)

struct Polygon{ /*多边形存储结构*/
int color;
int n; /*顶点个数*/
int *v; /*存储顶点各顶点坐标的数组指针*/
struct Polygon * next;
};

struct Polygon *pol;//以链表形式存储所有画出的多边形

void DPoly() /*点击鼠标左键画多边形,点击右键自动完成多边形最后一条边的封闭*/
{
int x,y,headx,heady,oldx,oldy,preX,preY;
/*(headx,heady)表示多边形第一顶点,(oldx,oldy)表示画边时鼠标所经过的前一个点,
(preX,preY)表示当前所画边的第一顶点,(x,y)是当前鼠标位置,count是点击次数*/

int button,count=0,flag; /* flag值用于返回当前点击区域在绘图区(1值)或调色板区(2值)还是按钮区(0值)*/

struct Polygon * last=NULL,* current=NULL;
if(pol==NULL)
{
pol=current=(struct Polygon *)malloc(sizeof(struct Polygon)); /*申请头节点*/
pol->next=NULL;
}
else
{
current=pol->next;
while(current!=NULL)
current=current->next;
}

setwritemode(XOR_PUT);

getmousexy(&oldx,&oldy);
Draw_c_mouse(oldx,oldy);
while(1)
{
getmousebutton(&button);
getmousexy(&x,&y);