计算机图形学 问题 Bresenham 画线算法和DDA 画线算法 写个文档解释一下。
用C++如何实现bresenham画线算法?计算机图形学上面有个drawpixel的函数。不知道怎么用。 在MFC中可以这样实现:/Bresenham算法画直线 void CMyView:OnDrawLineByBresenham(){/TODO:Add your command handler code here CDC*pDC=GetDC();CPoint PtBegin(80,130);。
bresenham画线算法与计算机图形学画线算法有什么不同?
bresenham画线算法与计算机图形学画线算法有什么不同? 悟空问答合作邮箱:wendahz@toutiao.com 悟空问答侵权投诉通道:jubao@toutiao.com 京ICP备12025439号-14 京公网安备11000002002030号 网络文化经营许可证 跟帖评论自律。
用C++如何实现bresenham画线算法?计算机图形学上面有个drawpixel的函数。不知道怎么用。 在MFC中可以这样实现:Bresenham算法画直线void CMyView:OnDrawLineByBresenham(){TODO:Add your command handler code hereCDC*pDC=GetDC();CPoint PtBegin(80,130);起始点CPoint PtEnd(320,370);终止点int s1,s2,interchange;double X=PtBegin.x;double Y=PtBegin.y;double deltax,deltay,f,Temp;deltax=abs(PtEnd.x-PtBegin.x);deltay=abs(PtEnd.y-PtBegin.y);if(PtBegin.x-PtBegin.x>;=0)s1=1;else s1=-1;if(PtEnd.y-PtBegin.y>;=0)s2=1;else s2=-1;f=2*deltay-deltax;if(deltay>;deltax){Temp=deltax;deltax=deltay;deltay=Temp;interchange=1;}else interchange=0;for(int i=1;i(deltax+deltay);i+){if(f>;=0){if(interchange=1)X+s1;else Y+s2;pDC->;SetPixel(int(X),int(Y),RGB(0,50,250));f=f-2*deltax;}else{if(interchange=1)Y+s2;else X+s1;pDC->;SetPixel(int(X),int(Y),RGB(200,0,0));f=f+2*deltay;}}}编译环境:VC6.0