实验报告
课程名称 计算机图形学
实验项目 实验五线段裁剪
系 别 计算机学院
班级/学号 计科1104班/2011011???
姓 名
日 期 2013年10月18日
指导教师 谷葆春
成 绩
一、 实验目的
理c|RIGHT;
if(yl<YB) c=c|BOTTOM;
else if(yl>YT) c=c|TOP;
codel=c;
c=0;
if(x2<XL) c=c|LEFT;
else if(x2>XR) c=c|RIGHT;
if(y2<YB) c=c|BOTTOM;
else if(y2>YT) c=c|TOP;
code2=c;
while(codel !=0||code2!=0)
(
if((codel & code2) !=0)( xl=x2=y l=y2=0;break;) code二code1;
if(codel ==0) code=code2;
if( ((LEFT & code))!=0)
{
x=XL;
y=yl+(y2-yl)*(XL-xl)/(x2-xl);
1
else if (( RIGHT & code)!=0)
{
x=XR;
y=yl+(y2-yl)*(XR-xl)/(x2-xl);
}
else if( (BOTTOM & code )!=0)
{
y=YB;
x=x 1+(x2-x 1)*(YB -y l)/(y2-yl);
else if((TOP & code)!=0)
y=YT;
x=x 1+(x2-x 1 )* (YT-y l)/(y2-y 1);
}
if(code==codel)
{
xl=x;yl=y;
c=0;
if(x<XL) c=c|LEFT;
else if(x>XR) c=c|RIGHT;
if(y<YB) c=c|BOTTOM;
else if(y>YT) c=c|TOP;
codel=c;
}
else
{
x2=x;y2=y;
c=0;
if(x<XL) c=c|LEFT;
else if(x>XR) c=c|RIGHT;
if(y<YB) c=c|BOTTOM;
else if(y>YT) c=c|TOP;
code2=c;
)
}
float k;
k=(float)(y2-yl)/(x2-xl);
for(x=x l;x<x2;x++)
(
y=k*(x-xl)+yl;
PenA myPen=gcnew Pen(Color::Red, 1 .Of);
Rectangle rl=Rectangle(x,int(y+), 1,1);
e->Graphics->DrawRectangle(myPen,rl);
}
for(x=XL;xv=XR;x++)
(
PenA myPen二gcnew Pen(Color::Blue, 1 .Of);
Rectangle rl =Rectangle(x,200,1,1);
e->Graphics->DrawRectangle(myPen,rl);
}
for(x=XL;xv=XR;x++)
{
PenA myPen=gcnew Pen(Color::Blue, 1
实验五 计算机图形学 北信科 来自淘豆网m.daumloan.com转载请标明出处.