计算机图形学 的*直线生成代码 不要算法 要代码步骤
希望大家帮我解决本人在线等你的回答如果用现成的请分享下我想要的是能绘制出来不是直接运行就能得到直线...
希望大家帮我解决 本人在线等你的回答 如果用现成的 请分享下
我想要的是能绘制出来 不是直接运行就能得到直线 展开
我想要的是能绘制出来 不是直接运行就能得到直线 展开
1个回答
展开全部
vc++mfc中
(x1,x2)是起点,(x2,y2)是终点,crColor是颜色
void CLineView::LineDDA(int x1, int y1, int x2, int y2, COLORREF crColor)
{
CClientDC dc(this);
int k,i;
float x,y,dx,dy;
if(abs(x2-x1)>=abs(y2-y1))
k=abs(x2-x1);
else
k=abs(y2-y1);
dx=float(x2-x1)/k;
dy=float(y2-y1)/k;
x=float(x1);
y=float(y1);
for(i=0;i<k;i++)
{
dc.SetPixel(int(x+0.5),int(y+0.5),crColor);
x+=dx;
y+=dy;
}
}
(x1,x2)是起点,(x2,y2)是终点,crColor是颜色
void CLineView::LineDDA(int x1, int y1, int x2, int y2, COLORREF crColor)
{
CClientDC dc(this);
int k,i;
float x,y,dx,dy;
if(abs(x2-x1)>=abs(y2-y1))
k=abs(x2-x1);
else
k=abs(y2-y1);
dx=float(x2-x1)/k;
dy=float(y2-y1)/k;
x=float(x1);
y=float(y1);
for(i=0;i<k;i++)
{
dc.SetPixel(int(x+0.5),int(y+0.5),crColor);
x+=dx;
y+=dy;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询