谁有中点画线法绘直线,bresenham画线法绘直线,多边形,bresenham画圆法,还有汉字生成的c语言源程序这些计算机图形学中的问题,对我这个c语言学的不好的真实很难办到,也学对您来说就是小菜一
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 08:14:32
谁有中点画线法绘直线,bresenham画线法绘直线,多边形,bresenham画圆法,还有汉字生成的c语言源程序这些计算机图形学中的问题,对我这个c语言学的不好的真实很难办到,也学对您来说就是小菜一
谁有中点画线法绘直线,bresenham画线法绘直线,多边形,bresenham画圆法,还有汉字生成的c语言源程序
这些计算机图形学中的问题,对我这个c语言学的不好的真实很难办到,也学对您来说就是小菜一碟,
谁有中点画线法绘直线,bresenham画线法绘直线,多边形,bresenham画圆法,还有汉字生成的c语言源程序这些计算机图形学中的问题,对我这个c语言学的不好的真实很难办到,也学对您来说就是小菜一
哈哈,把我们实验课的成就给你吧,都在实验室里通过的.不过没有你要的全部
#include
#include
#define ROUND(a) ((int) (a+0.5))
void bresenham(CDC* pdc,int xs,int ys,int xe,int ye,COLORREF color)//直线
{
int dx=xe-xs;
int dy=ye-ys;
int xinc,yinc;
if(dx>0)
xinc=1;
else
xinc=-1;
if(dy>0)
yinc=1;
else
yinc=-1;
dx=abs(dx);dy=abs(dy);
int x=xs,y=ys;
int i=0;
if(dx==0&&dy==0)
pdc->SetPixel(x,y,color);
else if(dx==0)
{
for(i=0;iSetPixel(x,y,color);
y+=yinc;
}
}
else if(dy==0)
{
for(i=0;iSetPixel(x,y,color);
x+=xinc;
}
}
else if(dx>dy)
{
int p=2*dy-dx;
int inc1=2*dy,inc2=2*(dy-dx);
for(i=0;iSetPixel(x,y,color);
x+=xinc;
if(pSetPixel(xc-x,yc-y,color);
pdc->SetPixel(xc+y,yc+x,color);
pdc->SetPixel(xc+y,yc-x,color);
pdc->SetPixel(xc-y,yc+x,color);
pdc->SetPixel(xc-y,yc-x,color);
}