多边形裁剪算法
【地址链接】未裁剪时,给定多边形的顶点坐标,并进行多边形绘制,同时绘制出窗口。裁剪后,显示窗口及裁剪后的多边形。请使用TC打开源程序:
#include<graphics.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
typedef struct {
int x, y;
}vertex;
void intersect(p1,p2,clipboundary,intersectpt)
vertex p1,p2,*clipboundary,*intersectpt;
{
if(clipboundary[0].y==clipboundary[1].y)
{
intersectpt->y = clipboundary[0].y;
intersectpt->x = p1.x + (clipboundary[0].y-p1.y)*(p2.x-p1.x)/(p2.y-p1.y);
}
else
{
intersectpt->x = clipboundary[0].x;
intersectpt->y = p1.y + (clipboundary[0].x-p1.x)*(p2.y-p1.y)/(p2.x-p1.x);
}
}
int inside(testvertex, clipboundary)
vertex testvertex, *clipboundary;
{
if(clipboundary[1].x <clipboundary[0].x)