跪求!! Vc 实现画直线的功能?

学的是计算机图形学,老师留了道作业题,用所学的DDA算法实现画直线的功能。仅能使用画点函数WindowsAPI:setpixel(hdc,x,y,color);我现在还不... 学的是计算机图形学,老师留了道作业题,用所学的DDA算法实现画直线的功能。仅能使用画点函数
Windows API:setpixel(hdc, x, y, color);

我现在还不知道应该怎样实现接口。

请大家帮帮忙,给个源代码(能运行的);
能不能给个能编译通过的代码?谢谢了
展开
 我来答
lileyear
2010-04-14 · TA获得超过1499个赞
知道小有建树答主
回答量:1291
采纳率:0%
帮助的人:917万
展开全部
bool Bresenham(int x1,int y1,int x2,int y2)
{
/*
int nX1 = x1;
int nY1 = y1;
int nX2 = x2;
int nY2 = y2;

int nDx = abs(nX2 - nX1);
int nDy = abs(nY2 - nY1);
bool bYDirection = false;

if (nDx < nDy)
{
// y direction is step direction
SwapInt(nX1, nY1);
SwapInt(nDx, nDy);
SwapInt(nX2, nY2);
bYDirection = true;
}

// calculate the x, y increment
int nIncreX = (nX2 - nX1) > 0 ? 1 : -1;
int nIncreY = (nY2 - nY1) > 0 ? 1 : -1;

int nCurX = nX1;
int nCurY = nY1;
int nTwoDY = 2 * nDy;
int nTwoDyDx = 2 * (nDy - nDx);
int nIniD = 2 * nDy - nDx;

while (nCurX != nX2) // nCurX == nX2 can not use in bitmap
{
if(nIniD < 0)
{
nIniD += nTwoDY;
// y value keep current state
}
else
{
nCurY += nIncreY;
nIniD += nTwoDyDx;
}
if (bYDirection)
{
//pDC->SetPixel(nCurY, nCurX, RGB(0, 0, 255));
}
else
{
//pDC->SetPixel(nCurX, nCurY, RGB(0, 0, 255));
}
nCurX += nIncreX;
}
*/
return true;
}
长荣科机电
2024-10-27 广告
直角坐标机器人,作为深圳市长荣科机电设备有限公司的明星产品之一,以其高精度、高稳定性在自动化生产线上发挥着关键作用。该机器人采用直线电机或精密导轨驱动,能在电商平台Y、Z三个直角坐标轴上实现精准定位与运动控制,广泛应用于电子装配、包装、检测... 点击进入详情页
本回答由长荣科机电提供
匿名用户
2010-04-10
展开全部
用MoveTo函数和LineTo函数绘制直线~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式