Breaseman算法绘制圆形|中点算法绘制圆形_程序片段

1. Breaseman算法绘制圆形程序

  由于算法的特殊性,限制绘制第一象限部分,其他部分通过旋转绘制。

 void CCGProjectWorkView::bresenHam_1P4Circle(int radium, const float lineColor[])
{
int pointX, pointY, deltD, deltHD, deltDV, direction;
pointX = ;
pointY = radium;
deltD = *(-radium); glColor3f(lineColor[], lineColor[], lineColor[]);
glBegin(GL_POINTS);
while (pointY >= )
{
glVertex3f(pointX, pointY, );
if (deltD < )//D点在圆内
{
deltHD = *(deltD+pointY)-;
if (deltHD <= )
direction = ;// H 点距离最近
else
direction = ;// D 点距离最近
}
else if (deltD > )//D点在圆外
{
deltDV = *(deltD -pointX)-;
if(deltDV <= )// D点里的最贱
direction = ;
else
direction = ;//V点距离最近
}
else
direction = ;//D在圆上
switch(direction)
{
case :
//H点位置
pointX++;
deltD += *pointX+;
break;
case :
//D点位置
pointX++;
pointY--;
deltD += *(pointX-pointY+);
break;
case :
//V点位置
pointY--;
deltD += (-*pointY+);
break;
default :
break;
}
}
glEnd(); }

2. 中点算法绘制圆形

  由于算法的特殊性,程序限制第一象限的1/8部分。

 //之画出正上方位于第一象限的左边的1/8园
void CCGProjectWorkView::midPoint_1P8Circle(int radium, const float lineColor[])
{
int pointX, pointY, r;
float distJugeFactor;
r = radium;
int deltX, deltY;//评判因子中x与y的个分量的递推分量
deltX = ;
deltY = - r - r;
distJugeFactor = - r; pointX = ;
pointY = radium;
glColor3f(lineColor[], lineColor[], lineColor[]);
glBegin(GL_POINTS);
glVertex3f(pointX, pointY, );
while (pointX < pointY)
{
if (distJugeFactor < )//中点位于圆内
{
distJugeFactor += deltX;
deltX += ;
pointX++;
}
else
{
distJugeFactor += deltX + deltY;
deltX += ;
deltY += ;
pointX++;
pointY--;
}
glVertex3f(pointX, pointY, );
}
glEnd(); }

Breaseman算法绘制圆形|中点算法绘制圆形_程序片段的更多相关文章

  1. iOS开发Quzrtz2D 十:圆形图片的绘制以及加边框圆形图片的绘制

    一:圆形图片的绘制 @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageV; @en ...

  2. 基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)

    加入实验室后,经过张老师的介绍,有幸与某公司合共共同完成某个项目,在此项目中我主要负责的是三维 pdf 报告生成.Dicom图像上亮度.对比度调整以及 Dicom图像三维重建.今天主要介绍一下完成Di ...

  3. 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆

    为了能以任意点为圆心画圆,我们可以把圆心先设为视点(相当于于将其平移到坐标原点),然后通过中点法扫描转换后,再恢复原来的视点(相当于将圆心平移回原来的位置). 圆心位于原点的圆有四条对称轴x=0,y= ...

  4. CGA裁剪算法之线段裁剪算法

    CGA裁剪算法之线段裁剪算法 常用的线段裁剪算法有三种:[1]Cohen_SutherLand裁剪算法,[2]中点分割裁剪算法,[3]参数化方法. 1. Cohen_SutherLand裁剪算法 为了 ...

  5. JVM内存管理------GC算法精解(复制算法与标记/整理算法)

    本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...

  6. CGA填充算法之种子填充算法

    CGA填充算法之种子填充算法 平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜 ...

  7. Bresenham直线算法与画圆算法

    在我们内部开发使用的一个工具中,我们需要几乎从 0 开始实现一个高效的二维图像渲染引擎.比较幸运的是,我们只需要画直线.圆以及矩形,其中比较复杂的是画直线和圆.画直线和圆已经有非常多的成熟的算法了,我 ...

  8. JVM内存管理之GC算法精解(复制算法与标记/整理算法)

    本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...

  9. 个性化排序算法实践(三)——deepFM算法

    FM通过对于每一位特征的隐变量内积来提取特征组合,最后的结果也不错,虽然理论上FM可以对高阶特征组合进行建模,但实际上因为计算复杂度原因,一般都只用到了二阶特征组合.对于高阶特征组合来说,我们很自然想 ...

随机推荐

  1. jsp页面重定向

    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncodi ...

  2. ubuntu 软件包系统已损坏 解决方法

    sudo apt-get clean sudo apt-get -f install sudo apt-get upgrade

  3. neo4j 学习-1

    Neo4j 子句 ```MATCH (:Person { name: 'an' })-[r]->(:Persion) RETURN type(r) // 返回关系的类型 如:r 就是 'KNOW ...

  4. Web标准:四、纵向导航菜单及二级弹出菜单

    Web标准:四.纵向导航菜单及二级弹出菜单 知识点: 1.纵向列表 2.标签的默认样式 3.css派生选择器 4.css选择器的分组 5.纵向二级列表 6.相对定位和绝对定位   1)纵向列表 可以看 ...

  5. 为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失

    wait/notify  机制是为了避免轮询带来的性能损失. 为了说清道理,我们用“图书馆借书”这个经典例子来作解释. 一本书同时只能借给一个人.现在有一本书,图书馆已经把这本书借了张三. 在简单的s ...

  6. 第八章 高级搜索树 (b1)B-树:动机

  7. 关于Python的OSError和IOError

    参考:http://stackoverflow.com/questions/29347790/difference-between-ioerror-and-oserror 在3.x版本已经移除,剩下O ...

  8. 230. Kth Smallest Element in a BST 找到bst中的第k小的元素

    [抄题]: Given a binary search tree, write a function kthSmallest to find the kth smallest element in i ...

  9. GridView上同时定义了 DataSource 和 DataSourceId

    VS平台下ASP.NET网站的建立,我们常常要跟数据库打交道,获取数据库的信息,通过GridView控件进行显示,需要为GridView指定 DataSourceId或者DataSource,切忌不可 ...

  10. [leetcode]340. Longest Substring with At Most K Distinct Characters至多包含K种字符的最长子串

    Given a string, find the length of the longest substring T that contains at most k distinct characte ...