2019独角兽企业重金招聘Python工程师标准>>>

void BresenhamLine(const QPointF& pt0,const QPointF& pt1,std::vector<QPointF> &line)
{double x=0.0,y=0.0,e=0.0;double x0=pt0.x();double y0=pt0.y();double x1=pt1.x();double y1=pt1.y();double dx=x1-x0;double dy=y1-y0;if(fabs(dy)<=fabs(dx)){if(x1<x0){qSwap(x0,x1);qSwap(y0,y1);}dx=x1-x0;dy=y1-y0;if(y0<=y1){e=-dx;x=x0;y=y0;for(int i=0;i<=dx;i++){line.push_back(QPointF(x,y));x++;e+=2*dy;if(e>=0){y++;e-=2*dx;}}}else{e=dx;x=x0;y=y0;for(int i=0;i<=dx;i++){line.push_back(QPointF(x,y));x++;e+=2*dy;if (e<=0){--y;e+=2*dx;}}}}else{if(y1<y0){qSwap(x0,x1);qSwap(y0,y1);}dx=x1-x0;dy=y1-y0;if(x0<=x1){e=-dy;x=x0;y=y0;for(int i=0;i<=dy;i++){line.push_back(QPointF(x,y));y++;e+=2*dx;if(e>=0){x++;e-=2*dy;}}}else{e=dy;x=x0;y=y0;for(int i=0;i<=dy;i++){line.push_back(QPointF(x,y));y++;e+=2*dx;if(e<=0){--x;e+=2*dy;}}}}
}

转载于:https://my.oschina.net/u/221120/blog/3017971

Bresenham 生成直线相关推荐

  1. 计算机图形学画直线程序豆丁网,计算机图形学DDA生成直线画法程序.doc

    计算机图形学DDA生成直线画法程序 实验一.直线的生成 一.实验目的 掌握DDA直线画法.中点画线法和Bresenham画线法 掌握VC++简单程序设计方法 二.实验内容 根据提供的程序框架,修改部分 ...

  2. 计算机图形学——生成直线的DDA算法

    本博客计算机图形学系列文章索引: 地址:<计算机图形学系列相关文章索引(持续更新)> 数值微分法即DDA法(Digital Differential Analyzer),是一种基于直线的微 ...

  3. java bresenham画直线_OpenGL中点Bresenham绘制直线算法

    本文实例为大家分享了OpenGL中点Bresenham绘制直线算法,供大家参考,具体内容如下 环境 macos xcode编译器 代码 #include #include #include #incl ...

  4. 计算机图形学之生成直线的DDA算法(C#)

    计算机图形学DDA直线算法(C#) 一.直线的生成算法 实质上是一个发现最佳逼近直线的象素系列,并填入彩色数据的过程. 二.DDA算法 一种基于直线的微分方程来生成直线的一种方法. 三.DDA代码程序 ...

  5. java bresenham画直线_图形学笔记: Bresenham画线算法

    图形学课本, 按规矩介绍完矩阵行列式, 第一个算法肯定就是Bresenham画线算法了. 來我们來看看算法 Bresenham是用来画一些不反走样的线段的. 都说了线段肯定有起点和终点, 假设我们: ...

  6. android 动态生成直线,Android使用自定义view在指定时间内匀速画一条直线的实例代码...

    本文讲述了Android使用自定义view在指定时间内匀速画一条直线的实例代码.分享给大家供大家参考,具体如下: 1.效果图: 2.自定义view实现 public class UniformLine ...

  7. android 动态生成直线,Android SVG技术入门:线条动画实现原理

    SVG技术入门:线条动画实现原理 这是一个有点神奇的技术:一副线条构成的画能自动画出自己,非常的酷.SVG 意为可缩放矢量图形(Scalable Vector Graphics),是使用 XML 来描 ...

  8. 计算机图形学应用基础考试,计算机图形学基础期末考试试题.docx

    计算机图形学基础期末考试试 题 一. 填空 1.将多 形外部一点 A 与某一点 B 用 段 接,若此 段与多 形 界相交的次数 ??????????, 点 B在多 形外部.若此 段与多 形 界相交的次 ...

  9. 计算机图形学实习教程之基本图形的生成(直线DDA算法,直线中点算法,Bresenham画圆算法),利用C#实现,附源码

    环境:Win10+Visual Studio 2022 Community 在本次实验中需要用到上一篇文章实验内容的代码及环境,详情请见:传送门 目录 一.实验目的 二.实验过程 1.生成直线的DDA ...

最新文章

  1. 第6章 I/O复用 select 和 poll 函数
  2. centos7安装配置ELK(Elasticsearch+Logstash+Kibana)
  3. Ajax请求SSM后台时提示:Invalid character found in the request target. The valid characters are defined in RF
  4. 差分放大电路单端输出和双端输出区别以及应用(转载)
  5. models.ForeignKey( ,on_delete=models.CASCADE)    # 关联外键
  6. need to focus
  7. Java抽奖抢购算法
  8. 年度最火的AOA蓝牙室内定位原理
  9. C# excel转换PDF 包括所有sheet
  10. 远程springmvc ajax请求乱码,网络编程springMVC解决ajax请求乱码的三种方法
  11. windows media player 服务器运行失败
  12. html+css制作静态小米商城页面(含css手动轮播图)
  13. C++ 仓库管理系统 控制台
  14. java 操作Zip文件(压缩、解压、加密)
  15. avenue css,CSS构建的平面建筑布局图
  16. 【MySql 数据库综合练习01 】
  17. 0x80073712_win10更新 错误代码: (0x80073712)
  18. 区块链软件开发公司 区块链的基本原理
  19. 关于数加服装ERP软件/系统的功能模块与应用的介绍
  20. 3.JavaWeb基础知识总结

热门文章

  1. C#中使用MoveTo和Path.ChangeExtension方法实现文件更改后缀名
  2. Winform中使用代码编写Button按钮的点击事件
  3. C#中实现视频播放器窗体程序(附源码下载)
  4. Java中获取Date的昨天代码实现
  5. SpringBoot+Echarts实现请求后台数据显示饼状图
  6. mysql的show profile使用总结
  7. springbatch的reader,如何使用mybatis?使用MyBatisCursorItemReader可以完美解决
  8. 吐血整理《计算机网络五层协议之物理层(中)》
  9. 冲刺 (sprint) 评审会议
  10. 免费下载 |《数字广告投放中虚假流量的排查与判定》白皮书重磅发布