if(ptset1[i+1].x
if(code1!=0&&code2==0) {
pt[k].x=XL;
pt[k].y=ptset1[i].y+(ptset1[i+1].y-ptset1[i].y)*(XL- ptset1[i].x)/(ptset1[i+1].x-ptset1[i].x); pt[k+1].x=ptset1[i+1].x; pt[k+1].y=ptset1[i+1].y; k=k+2; }
if(code1==0&&code2==0) { if(k==0) {
pt[k].x=ptset1[i].x; pt[k].y=ptset1[i].y; pt[k+1].x=ptset1[i+1].x; pt[k+1].y=ptset1[i+1].y; k=k+2; } if(k!=0) {
pt[k].x=ptset1[i+1].x; pt[k].y=ptset1[i+1].y; k=k+1; } }
if(code1==0&&code2!=0) {
pt[k].x=XL;
pt[k].y=ptset1[i].y+(ptset1[i+1].y-ptset1[i].y)*(XL- ptset1[i].x)/(ptset1[i+1].x-ptset1[i].x); k++; } }
pt[k].x=pt[0].x;
pt[k].y=pt[0].y; M=k+1; k=0;
for(i=0;i if(pt[i].x if(pt[i+1].x if(code1==0&&code2==0) { if(k==0) { pts[k].x=pt[i].x; pts[k].y=pt[i].y; pts[k+1].x=pt[i+1].x; pts[k+1].y=pt[i+1].y; k=k+2; } if(k!=0) { pts[k].x=pt[i+1].x; pts[k].y=pt[i+1].y; k++; } } if(code1!=0&&code2==0) { pts[k].x=XR; pts[k].y=pt[i].y+(pt[i+1].y-pt[i].y)*(XR-pt[i].x)/(pt[i+ 1].x-pt[i].x); pts[k+1].x=pt[i+1].x; pts[k+1].y=pt[i+1].y; k=k+2; } if(code1==0&&code2!=0) { pts[k].x=XR; pts[k].y=pt[i].y+(pt[i+1].y-pt[i].y)*(XR-pt[i].x)/(pt[i+ 1].x-pt[i].x); k=k+1; } } //处理最后一条边 pts[k]=pts[0]; M=k+1; k=0; for(i=0;i if(pts[i].y>YB) c=4; else if(pts[i].y if(pts[i+1].y>YB) c=4; else if(pts[i+1].y if(code1==0&&code2==0) { if(k==0) { ptse[k].x=pts[i].x; ptse[k].y=pts[i].y; ptse[k+1].x=pts[i+1].x; ptse[k+1].y=pts[i+1].y; k=k+2; } if(k!=0) { ptse[k].x=pts[i+1].x; ptse[k].y=pts[i+1].y; k=k+1; } } if(code1!=0&&code2==0) { ptse[k].y=YB; ptse[k].x=pts[i].x+(pts[i+1].x-pts[i].x)*(YB-pts[i].y)/ (pts[i+1].y-pts[i+1].y); ptse[k+1].x=pts[i+1].x; ptse[k+1].y=pts[i+1].y; k=k+2; } } if(code1==0&&code2!=0) { ptse[k].y=YB; ptse[k].x=pts[i].x+(pts[i+1].x-pts[i].x)*(YB-pts[i].y)/ (pts[i+1].y-pts[i+1].y); k=k+1; } ptse[k]=ptse[0]; M=k+1; k=0; for(i=0;i if(ptse[i].y>YT) c=0; else if(ptse[i].y if(ptse[i+1].y>YT) c=0; else if(ptse[i+1].y if(code1!=0&&code2==0) { p[k].y=YT; p[k].x=ptse[i].x+(ptse[i+1].x-ptse[i].x)*(YT-ptse[i].y)/ (ptse[i+1].y-ptse[i].y); p[k+1].x=ptse[i+1].x; p[k+1].y=ptse[i+1].y; k=k+2; } if(code1==0&&code2==0) { if(k==0) { p[k].x=ptse[i].x; p[k].y=ptse[i].y; p[k+1].x=ptse[i+1].x; p[k+1].y=ptse[i+1].y; k=k+2; } if(k!=0) { p[k].x=ptse[i+1].x; p[k].y=ptse[i+1].y; k=k+1; } } if(code1==0&&code2!=0) { p[k].y=YT; p[k].x=ptse[i].x+(ptse[i+1].x-ptse[i].x)*(YT-ptse[i].y)/ (ptse[i+1].y-ptse[i].y); k++; } } p[k]=p[0]; M=k+1; pDC->MoveTo(p[0]); for(int j=1;j<=M;j++) { pDC->LineTo(p[j]); } } } 说明:为避免上述―图形裁剪‖程序执行过程中,在没有双击就直接单击―线段裁剪‖或