这里做些代码的归纳
具体关于三种算法的区别,百度找找

其中的putpixel()函数为easyx库里面的绘点函数

// 使用 Bresenham 画圆法
void Circle_Bresenham(int x, int y, int r, int color)
{int tx = 0, ty = r, d = 3 - 2 * r;while (tx <= ty){// 利用圆的八分对称性画点putpixel(x + tx, y + ty, color);putpixel(x + tx, y - ty, color);putpixel(x - tx, y + ty, color);putpixel(x - tx, y - ty, color);putpixel(x + ty, y + tx, color);putpixel(x + ty, y - tx, color);putpixel(x - ty, y + tx, color);putpixel(x - ty, y - tx, color);if (d < 0)      // 取上面的点d += 4 * tx + 6;else         // 取下面的点d += 4 * (tx - ty) + 10, ty--;tx++;}
}// 正负画圆法
void Circle_PN(int x, int y, int r, int color)
{int tx = 0, ty = r, f = 0;while (tx <= ty){// 利用圆的八分对称性画点putpixel(x + tx, y + ty, color);putpixel(x + tx, y - ty, color);putpixel(x - tx, y + ty, color);putpixel(x - tx, y - ty, color);putpixel(x + ty, y + tx, color);putpixel(x + ty, y - tx, color);putpixel(x - ty, y + tx, color);putpixel(x - ty, y - tx, color);if (f <= 0)f = f + 2 * tx + 1, tx++;elsef = f - 2 * ty + 1, ty--;}
}// 中点画圆法
void Circle_Midpoint(int x, int y, int r, int color)
{int tx = 0, ty = r, d = 1 - r;while (tx <= ty){// 利用圆的八分对称性画点putpixel(x + tx, y + ty, color);putpixel(x + tx, y - ty, color);putpixel(x - tx, y + ty, color);putpixel(x - tx, y - ty, color);putpixel(x + ty, y + tx, color);putpixel(x + ty, y - tx, color);putpixel(x - ty, y + tx, color);putpixel(x - ty, y - tx, color);if (d < 0)d += 2 * tx + 3;elsed += 2 * (tx - ty) + 5, ty--;tx++;}
}

Bresenham画圆 正负画圆法 中点画圆法相关推荐

  1. c语言计算机图形来画八分画圆,计算机图形学:中点画圆算法

    在平面解析几何中,圆的方程可以描述为(x – x0)2 + (y – y0)2 = R2,其中(x0, y0)是圆心坐标,R是圆的半径,特别的,当(x0, y0)就是坐标中心点时,圆方程可以简化为x2 ...

  2. [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法

    首先是Windows10 + Visual Studio 2019 搭建OpenGL环境可以查看如下链接: 萌新向!!!Windows10 + Visual Studio 2019 搭建OpenGL环 ...

  3. 计算机图形学之画圆(中点画圆法、Bresenham画圆法)

    参考学习了一些前辈的代码,总结了以下这个,感谢前人栽树,同时欢迎交流. 整个画圆利用了圆的八对称性,故只需画出八分之一圆就可利用对称性就可以画出整个圆. 专门写了一个函数来画圆的点,其中(x0,y0) ...

  4. 【OpenGL C++】画一个空心汉字和一个圆,并填充汉字(中点画线法,中点画圆法,种子填充法)

    内容:画一个空心汉字和一个圆 设计一个画任意直线和圆的算法,可选所学的任一图形扫描转换算法(中点或bresenham算法),不能使用任何画线/画圆的API: 使用画线算法实现空心汉字的绘制,汉字必须为 ...

  5. Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形

    OpenCV 中的绘图函数 使用 OpenCV 绘制不同几何图形,其中包括的函数有 cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2. ...

  6. java左手画圆右手画方_左手画圆右手画方900字作文

    左手画圆右手画方900字作文 圆,亦始亦终,柔曲多变. 方,公平公正,有棱,有角,有个性. 方与圆,不只是形状,亦是两种性格,两种态度,两种人生. 方的人脾气耿直,公正严苛: 圆的人机智多变,善于处世 ...

  7. opencv画圆和画椭圆的联合作战

    效果图如上: # 画圆和画椭圆的联合作战 WINDOW_WIDTH = 200 #定义窗口大小 def DrawDilledCircle(img,center):thickness = -1lineT ...

  8. Android 自定义view 图片编辑(画圆,画长方形,手势缩放)

    Android 自定义view 图片编辑(画圆,画长方形,手势缩放) package com.bridgetek.yqm.view; import android.annotation.Suppres ...

  9. Windows下并发地画圆和画方

    hust操作系统原理实验:4.5(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现"并发地 ...

最新文章

  1. ios开发中计算代码运算时间_iOS日历、日期、时间的计算
  2. dos显示磁盘剩余空间
  3. 出生日期范围的Sql语句_【呕心总结】python如何与mysql实现交互及常用sql语句
  4. 对勾函数_这16个Excel函数,帮你完成80%的数据统计工作
  5. creo数控编程怎么样_CREO数控编程NC图文教程 -
  6. STM8L中断线和中断端口使用方法
  7. YOLOV5 网络模块解析
  8. shell中expr的使用介绍
  9. wstmart不错。可以用用
  10. 常用RL算法的主要特性
  11. 王桂林 C++基础与提高 练习题——格式时钟输出(实时的,精确到秒)
  12. 91免费视频Redis+Lua解决高并发场景在线秒杀问题
  13. 对象及变量的并发访问(案例加总结)--学习笔记
  14. video dispose
  15. 卸载adobe XD 插件
  16. 记SWPU2021 GFCTF线下AWD赛
  17. Linux设备树led,linux设备树下LED灯控制
  18. PostgreSQL + Postgis
  19. 计算机机房如何批量重装,全自动网刻工具 — 机房批量安装系统必备
  20. 软件架构师应该知道的97件事

热门文章

  1. 颠覆者-读周鸿祎新书
  2. 利用sqlmap注入获取网址管理员账号密码
  3. 抽象类和具体类的区别
  4. Git git update-index --assume-unchanged
  5. 37岁Android程序员裸辞,四个月被497家公司拒绝,问猎头后懵了
  6. 压力测试软件 loadr,初学abench压力测试 - 玄大冰 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  7. 信号完整性(SI)电源完整性(PI)学习笔记(二十七)S参数在信号完整性中的应用(二)
  8. 主机名 域名 网站名 URL
  9. 记忆英语单词方法20种
  10. Echarts曲线渐变色lineStyle