跪求!! Vc 实现画直线的功能?
学的是计算机图形学,老师留了道作业题,用所学的DDA算法实现画直线的功能。仅能使用画点函数WindowsAPI:setpixel(hdc,x,y,color);我现在还不...
学的是计算机图形学,老师留了道作业题,用所学的DDA算法实现画直线的功能。仅能使用画点函数
Windows API:setpixel(hdc, x, y, color);
我现在还不知道应该怎样实现接口。
请大家帮帮忙,给个源代码(能运行的);
能不能给个能编译通过的代码?谢谢了 展开
Windows API:setpixel(hdc, x, y, color);
我现在还不知道应该怎样实现接口。
请大家帮帮忙,给个源代码(能运行的);
能不能给个能编译通过的代码?谢谢了 展开
2个回答
展开全部
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;
}
{
/*
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 广告
2024-10-27 广告
直角坐标机器人,作为深圳市长荣科机电设备有限公司的明星产品之一,以其高精度、高稳定性在自动化生产线上发挥着关键作用。该机器人采用直线电机或精密导轨驱动,能在电商平台Y、Z三个直角坐标轴上实现精准定位与运动控制,广泛应用于电子装配、包装、检测...
点击进入详情页
本回答由长荣科机电提供
2010-04-10
展开全部
用MoveTo函数和LineTo函数绘制直线~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询