• 大小: 5KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签:

资源简介

#include , line(left,top,right,top); line(left,bottom,right,bottom); line(left,top,left,bottom); line(right,top,right,bottom); //绘制边框和裁剪图形

资源截图

代码片段和文件信息

#include 
#include 
void main()
{
int p[10][2]q[20][2]niktemp_xtemp_y;    /*p[][0]表示x坐标 p[][1]表示y坐标*/
int left=200right=400bottom=100top=200;
int gdriver=DETECTgmode;
printf(“请输入带切割多边形的数据!\n“);
printf(“带切割多边形的定点数为:“);
scanf(“%d“&n);
for(i=0;i {
printf(“请输入X(%d)的值:“i+1);
scanf(“%d“&p[i][0]);
printf(“请输入Y(%d)的值:“i+1);
scanf(“%d“&p[i][1]);
}
p[n][0]=p[0][0];
p[n][1]=p[0][1];
initgraph(&gdriver&gmode““);
setcolor(BLUE);
for(i=0;i {
line(p[i][0]p[i][1]p[i+1][0]p[i+1][1]);
}
getchar();
setcolor(WHITE);
line(lefttoprighttop);
line(leftbottomrightbottom);
line(lefttopleftbottom);
line(righttoprightbottom); //绘制边框和裁剪图形

for(i=0k=0;i { //左边切割
if(p[i][0]=left)
{
temp_x=left;
temp_y=p[i][1]+((left-p[i][0])*(p[i+1][1]-p[i][1])/(p[i+1][0]-p[i][0]));
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][0]>=left && p[i+1][0]>=left)
{
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][0]>=left && p[i+1][0] {
temp_x=left;
temp_y=p[i][1]+((left-p[i][0])*(p[i+1][1]-p[i][1])/(p[i+1][0]-p[i][0]));
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
}
}
n=k;
for(i=0;i {
p[i][0]=q[i][0];
p[i][1]=q[i][1];
}
p[n][0]=q[0][0];
p[n][1]=q[0][1];

for(i=0k=0;i { //顶边切割
if(p[i][1]>top && p[i+1][1]<=top)
{
temp_x=p[i][0]+((top-p[i][1])*(p[i+1][0]-p[i][0])/(p[i+1][1]-p[i][1]));
temp_y=top;
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][1]<=top && p[i+1][1]<=top)
{
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][1]<=top && p[i+1][1]>top)
{
temp_x=p[i][0]+((top-p[i][1])*(p[i+1][0]-p[i][0])/(p[i+1][1]-p[i][1]));
temp_y=top;
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
}
}
n=k;
for(i=0;i {
p[i][0]=q[i][0];
p[i][1]=q[i][1];
}
p[n][0]=q[0][0];
p[n][1]=q[0][1];

for(i=0k=0;i { //右边切割
if(p[i][0]>right && p[i+1][0]<=right)
{
temp_x=right;
temp_y=p[i][1]+((right-p[i][0])*(p[i+1][1]-p[i][1])/(p[i+1][0]-p[i][0]));
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][0]<=right && p[i+1][0]<=right)
{
q[k][0]=p[i+1][0];
q[k][1]=p[i+1][1];
k++;
}
else if(p[i][0]<=right && p[i+1][0]>right)
{
temp_x=right;
temp_y=p[i][1]+((right-p[i][0])*(p[i+1][1]-p[i][1])/(p[i+1][0]-p[i][0]));
q[k][0]=temp_x;
q[k][1]=temp_y;
k++;
}
}
n=k;
for(i=0;i {
p[i][0]=q[i][0];
p[i][1]=q[i][1];
}
p[n][0]=q[0][0];
p[n][1]=q[0][1];


for(i=0k=0;i { //底边切割
if(p[i][1]=bottom)
{
temp_x=p[i][0]+(

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

     文件       3847  2010-10-29 13:22  多边形裁剪\多边形裁剪.cpp

     文件       3451  2010-10-29 12:49  多边形裁剪\多边形裁剪.dsp

     文件        528  2010-10-29 12:50  多边形裁剪\多边形裁剪.dsw

     文件      50176  2010-10-29 12:50  多边形裁剪\多边形裁剪.ncb

     文件      48640  2010-10-29 12:50  多边形裁剪\多边形裁剪.opt

     文件        254  2010-10-29 12:49  多边形裁剪\多边形裁剪.plg

     目录          0  2011-01-14 00:35  多边形裁剪

----------- ---------  ---------- -----  ----

               106896                    7


评论

共有 条评论