?/p>
?/p>
R
数学
111
大连交通大?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
课程名称?/p>
计算机图形学
?/p>
?/p>
实验名称?/p>
Cohen-Sutherland
线裁剪算?/p>
指导老师
实验目的、要求:
通过上机实践,更好地掌握
Cohen-Sutherland
线裁剪算?/p>
实验仪器?/p>
PC
机?/p>
VC6.0
实验步骤、内容:
菜单
消息响应函数
(注意:绿色背景色字体的代码在实验报告中不用写)
辅助函数代码?/p>
#include <math.h>
inline int round (const float a){return int(a+0.5);}//
取整
void DDAline(int x0,int y0,int xEnd,int yEnd,CDC* pDC)//DDA
画线,用于裁剪算法中线输?/p>
{
int dx=xEnd-x0, dy=yEnd-y0,steps,k;
float xIncrement, yIncrement, x=x0, y=y0;
if(fabs(dx)>fabs(dy))
steps=fabs(dx);
else
steps=fabs(dy);
xIncrement=float(dx)/float(steps);
yIncrement=float(dy)/float(steps);
pDC->SetPixel(round(x),round(y),RGB(255,0,0));
for(k=0;k<steps;k++){
x+=xIncrement;
y+=yIncrement;
pDC->SetPixel(round(x),round(y),RGB(255,0,0));
}