首页 中点画线法算法

中点画线法算法

举报
开通vip

中点画线法算法中点画线法算法 中点画线法算法: void CMyView::OnMidpointline() { CDC *pDC=GetDC(); int x0=100,y0=100,x1=400,y1=300,c=RGB(0,0,0); //黑色直线 float a,b,d1,d2,d,x,y; a=y0-y1; b=x1-x0; d=2*a+b; d1=2*a; d2=2*(a=b); x=x0;y=y0; pDC->SetPixel(x,y,c); while(xSetPixel(x,y,c)...

中点画线法算法
中点画线法算法 中点画线法算法: void CMyView::OnMidpointline() { CDC *pDC=GetDC(); int x0=100,y0=100,x1=400,y1=300,c=RGB(0,0,0); //黑色直线 float a,b,d1,d2,d,x,y; a=y0-y1; b=x1-x0; d=2*a+b; d1=2*a; d2=2*(a=b); x=x0;y=y0; pDC->SetPixel(x,y,c); while(xSetPixel(x,y,c); } ReleaseDC(pDC); } •例:用中点画线法P0(0,0) P1(5,2)a=y0-y1=-2 b=x1-x0=5 d0=2a+b=1 d1=2a=-4 d2=2(a+b)=6 I xi yid 1 0 0 1 2 1 0 -3 3 2 1 3 4 3 1 -1 5 4 2 5 6 5 2 1 Bresenham算法: void CTestView ::OnBresenhamline() { CDC *pDC=GetDC(); int x1=100,y1=200,x2=600,y2=800,color=RGB(0,0,255); int i,x,y,dx,dy; float k,e; dx=x2-x1; dy=y2-y1; k=dy/dx; e=-0.5; x=x1; y=y1; for(i=0;i<=dx;i++) { pDC->SetPixel(x,y,color); x++; e=e+k; if(e>=0) { y++; e=e-1;} } } 例:Line: P(0, 0), P(5,2) 01 k=dy/dx=0.4 x y e 0 0-0.5 1 0 -0.1 32 1 -0.7 3 1 -0.32 4 2 -0.91 5 2 -0.5 0 1 2 3 4 5 中点画圆: void CTestView::OnMindpointcircle() { CDC *pDC=GetDC(); int x=100,y=200,r=150,color=RGB(0,0,255); float d; x=0; y=r; d=1.25-r; pDC->SetPixel(x,y,color); while(x<=y) { if(d<0) d+=2*x+3; else {d+=2*(x-y)+5;y--;} x++; pDC->SetPixel(x,y,color); } } Bresenham画圆: void CMyView::OnBresenhamcircle() { CDC *pDC=GetDC(); int x0=100,y0=100,x,y,r=80,c=0; //黑色圆弧 float e,d; e=3-2*r;x=0;y=r; while(x<=y) { if (e<0) {e=e+4*x+6;x++;} else{e=e+4*(x-y)+10; x++;y--;} pDC->SetPixel(x+x0,y+y0,c); pDC->SetPixel(-x+x0,y+y0,c); pDC->SetPixel(-x+x0,-y+y0,c); pDC->SetPixel(x+x0,-y+y0,c); pDC->SetPixel(y+x0,x+y0,c); pDC->SetPixel(-y+x0,x+y0,c); pDC->SetPixel(-y+x0,-x+y0,c); pDC->SetPixel(y+x0,-x+y0,c); } ReleaseDC(pDC); }
本文档为【中点画线法算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:4
分类:
上传时间:2018-02-12
浏览量:37