中点画椭圆
来源:互联网 发布:2016十大网络用语作文 编辑:程序博客网 时间:2024/05/16 00:34
void drawPix(CDC *pDC, int CentX, int CentY, int x, int y, long color){pDC->SetPixel(CentX+x, CentY+y, color);pDC->SetPixel(CentX+x, CentY-y, color);pDC->SetPixel(CentX-x, CentY+y, color);pDC->SetPixel(CentX-x, CentY-y, color);}void ellipse(CDC *pDC, int CentX, int CentY, int a, int b, long color){int a2 = a * a;int b2 = b * b;int x = 0;int y = b;int d = b2 + a2 * (0.25 - b);drawPix(pDC, CentX, CentY, x, y, color);//上半部分 while(b2 * (x + 1) < a2 * (y - 0.5)){if(d >= 0){d += a2 * (2 - 2 * y);y--;}x++;d += b2 * (3 + 2 * x);drawPix(pDC, CentX, CentY, x, y, color);}//下半部分d = b2 * (x + 0.5) * (x + 0.5) + a2 * (y - 1) * (y - 1) - a2 * b2;while(y > 0){if(d < 0){d += b2 * (2 + 2 * x);x++;}d += a2 * (3 - 2 * y);y--;drawPix(pDC, CentX, CentY, x, y, color);}}void CEllipseView::OnDraw(CDC* pDC){CEllipseDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);ellipse(pDC, 300, 300, 200, 100, RGB(255, 0, 0));ellipse(pDC, 300, 300, 100, 200, RGB(0, 255, 0));// TODO: add draw code for native data here}
精度要求不高的情况下,可作如下化简:
void ellipse(CDC *pDC, int CentX, int CentY, int a, int b, long color){int a2 = a * a;int b2 = b * b;int x = 0;int y = b;int d = b2 + a2 * (0.25 - b) ;drawPix(pDC, CentX, CentY, x, y, color);//上半部分 while(b2 * (x + 1) < a2 * (y - 0.5)){if(d >= 0){d += a2 * (1 - y);y--;}x++;d += b2 * (1 + x);drawPix(pDC, CentX, CentY, x, y, color);}//下半部分d = b2 * (x + 0.5) * (x + 0.5) + a2 * (y - 1) * (y - 1) - a2 * b2;while(y > 0){if(d < 0){d += b2 * (1 + x);x++;}d += a2 * (1 - y);y--;drawPix(pDC, CentX, CentY, x, y, color);}}
0 0
- 中点画椭圆算法
- 中点画椭圆
- 椭圆生成算法---中点画椭圆法
- OpenGL学习之中点画椭圆算法
- (7)椭圆的生成之中点画椭圆法
- 中点画直线算法
- 中点画圆法
- 中点画圆法
- 中点画圆
- OpenGL中使用中点画圆法画圆
- opencv中使用中点画圆算法
- 中点画圆算法的实现
- 圆生成算法---中点画圆法
- 用OpenGL实现 中点画圆法
- Bresenham 中点画圆算法实现
- 计算机图形学:中点画圆算法
- 计算机图形学 :中点画圆法
- 中点画圆法(计算机图形学)
- 是否同一棵二叉搜索树 (25分)
- CentOS常用基础操作
- poj 3278 Catch That Cow(bfs)
- String类的hashCode方法的算法解读
- [Algorithm]随机发牌
- 中点画椭圆
- Mac Eclipse Grade Web学习笔记
- HDU 1241Oil Deposits (DFS)
- ListView学习(二)
- Android的数据存储方式
- nginx 实现多域名转发到web服务不同路径
- 图片加载库Glide介绍
- JAVA多线程和并发
- JQuery的tree显示处理插件