DDA算法画直线
来源:互联网 发布:电信网络为什么那么差 编辑:程序博客网 时间:2024/05/10 22:53
画直线的代码,适合所有斜率的直线
void CMyView::LineDDA(CDC *pDC, int x0, int y0, int x1, int y1, COLORREF clr)
{
if (x0 == x1) // 垂直线
{
double y = y0, yMax = y1;
if (y0 > y1)
{
y = y1;
yMax = y0;
}
while (y <= yMax)
{
pDC->SetPixel(x0, y, clr);
++y;
}
return;
}
if (y0 == y1) // 水平线
{
double x = x0, xMax = x1;
if (x0 > x1)
{
x = x1;
xMax = x0;
}
while (x <= xMax)
{
pDC->SetPixel(x, y0, clr);
++x;
}
return;
}
double dx = x1 - x0;
double dy = y1 - y0;
double k = dy / dx;
double x = x0, y = y0;
double xMax = x1, yMax = y1;
if (k <= 1 && k >= -1)
{
if (x0 > x1)
{
x = x1;
y = y1;
xMax = x0;
yMax = y0;
}
for (; x <= xMax; ++x)
{
pDC->SetPixel(x, int(y+0.5), clr);
y += k;
}
}
else
{
if (y0 > y1)
{
x = x1;
y = y1;
xMax = x0;
yMax = y0;
}
for (; y <= yMax; ++y)
{
pDC->SetPixel(int(x+0.5), y, clr);
x += 1/k;
}
}
}
- DDA算法画直线
- DDA画直线算法
- 图形学算法--DDA画直线
- DDA算法画直线(VC++)
- java画直线算法 DDA 计算机图形学
- OpenGl中DDA算法画直线
- DDA直线算法
- dda直线绘制算法
- 直线生成算法---DDA
- DDA直线算法
- DDA算法 Bresenhamline直线 生成
- 学习DDA直线绘制算法
- 生成直线的DDA算法
- 直线生成算法---对称DDA
- 直线生成算法---简单DDA
- 画图板--用DDA算法和Bresenham算法画直线
- OpenGL中点算法和DDA算法画直线
- VC实现生成BMP文件(DDA算法画直线)
- 菜鸟学习OGRE和天龙八部之十八: 获得档案(Archive)文件列表
- IT餐馆—第二十四回 明智
- 孤独
- asp.net 第三方控件列表
- 句句经典
- DDA算法画直线
- 字符串转整形 atoi
- SqlHelper
- Exchange2010各角色对软件环境的前提条件
- 多态的一个问题
- 值得学习的处事哲学
- Exchange 2007单服务器灾难恢复
- 【汇编】计算器,支持带括号的四则混合运算
- 程序员30岁以后才明白……