位置: 编程技术 - 正文

bresenham直线,画圆算法(附OpenGL代码)(直线画画)

编辑:rootadmin

推荐整理分享bresenham直线,画圆算法(附OpenGL代码)(直线画画),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:画出直线bc,bresenham画线法,bresenham算法画直线代码open gl,直线b怎么画,bresenham直线,画圆算法,直线cb怎么画,bresenham直线,画圆算法,bresenham直线算法,内容如对您有帮助,希望把文章链接给更多的朋友!

Bresenham算法画直线:

我们在电脑上看到的图像时由一个个像素点拼接而成,当你放大图像就可以观察到这点。以下是一条直线:

它是由这些像素点一个一个拼接而成,那么问题来了,怎样选取这些点,使我们看到的更像是一条直线呢?

我们的主要思路就是,谁靠近直线我们就选谁,近水楼台先得月。如下图,因为,所以我们选择直线下面的黄点作为画直线的点。

依照这个原则,直到终点。这样一条线就出来了。所以我们得比较这两个&#;的大小。我们只考虑0-度的情况:

假设直线为

这里的,而用计算机计算除法是比较耗时的,我们需要改进公式,使其运行更快。这里我们在这个等式前乘以,这样也不会改变等式符号,而我们最终的目的是判断正负,所以是对结果是无影响的。得到如下公式。

其中:

此时

对于pi还可以化简,就是将y= mx&#;b代入

化简得

如果你认为这里就足够简洁了,那么接下来还有更好的。

对pi的迭代:它的好处就是减少计算吧(个人认为,如有高见可探讨),只要判断前一个点的p的&#;得正负,就可推出下一个点的坐标。然后对进行赋&#;,再进行下一轮判断以此循环。

bresenham直线,画圆算法(附OpenGL代码)(直线画画)

bresenham算法画圆:

对于画圆算法,主要思路就是取可选点之间的中点,如下图的M:

然后判断这个点是在圆内还是在圆外,据此判断所选取的点是E还是SE。然后通过迭代画出1/8个圆,根据八分法,就可以画出整个圆了。

类&#;直线,推导出的结果就是:

if(di<0) then

else

迭代至完成1/8圆。

八分法画圆:

关于推导,类&#;于直线,我觉得这两篇有关圆的算法推导写的很详细了,我就不再累赘。

参考文档:

八分法画圆:

正负法画圆:

完整代码:

openGL读取obj文件 《代码转自网上》1.最简单的obj文件的读取,没有采用结构体来储存信息,不过比较有参考意义用int**a;来定义二维数组之后需要在使用之前初始化如:a=

OpenGL--shader入门 理论基础着色器:opengl渲染管线分为固定管线和可编程管线,3.1版本后固定管线已经废除了。可编程管线主要是包括顶点着色器和片段着色器,而我们

Java版WorldWind中加入会运动模型 在worldwindsdk中的gov.nasa.worldwind.geom,这个包是存放一些几何模型的。我使用的是球类Sphere,它是使用OpenGL画出来的。参考这个类进行了一定的修改成为Pla

标签: 直线画画

本文链接地址:https://www.jiuchutong.com/biancheng/369615.html 转载请保留说明!

上一篇:Tips(1)glewExperimental

下一篇:openGL读取obj文件(opengl context for format)

  • 控股股东无偿捐赠
  • 金蝶结转销售成本
  • 其他应付款计入资本公积
  • 土地使用税什么意思
  • 什么发票可以冲销
  • 支付外币投资会计处理
  • 短期借款会计核算
  • 置换新房产支付资金怎么纳税?
  • 管理费用是负的是什么意思
  • 差错更正要调去年的吗
  • 加油充值卡有优惠吗
  • 承包给对方了,受伤了要赔偿吗
  • 企业所得税减免优惠政策
  • 317房地产政策解读
  • 企业所得税预缴纳税申报表
  • 会计中包装物计入
  • 如何区分纳税调额和补税
  • 取得走逃失联企业的异常增值税发票如何处理
  • 清华同方bios通用密码(thtfpc)
  • 家常煲汤500例的做法窍门
  • 小规模企业年末怎么结转
  • 社保缴纳方式怎么填
  • PHP:xml_parser_create()的用法_XML解析器函数
  • 结转损益和结转成本
  • ghost后分区没有了
  • 垫资计入什么会计科目
  • electron静默打印
  • php中strtotime
  • php数据库语句
  • 税务机关义务包括
  • 合伙企业的股息红利要交税吗
  • 前端这点事
  • js轮播图视频教程
  • 让我用用你的计算机
  • Laravel5中防止XSS跨站攻击的方法
  • 小规模纳税人什么意思
  • 文化事业建设费征收范围及计税依据
  • 合伙企业分红怎么做账
  • 政府专项基金是什么
  • 其他资本公积可以冲减吗
  • 外出经营流程
  • 无法收回的款项
  • 个人咨询费发票怎么开
  • 不是销售性质的工作
  • 建造生产线计入什么科目
  • 企业营改增税率是多少
  • 施工企业开专票还是开普票好
  • 代发工资业务流程
  • 交通补贴属于工资薪金所得吗
  • 地方教育附加申报
  • 月底现金余额
  • 收到是怎么写
  • sum(case when then)(判断男女生的个数)
  • Windows Server 2003将于7月14日停服 想用收费
  • win10系统问题怎么修复
  • linux大型软件
  • linux快速清空大日志文件
  • 联想随笔
  • U盘硬装WIN7 64位旗舰系统,是怎样练成的(妹子装机衔接篇)
  • win8.1如何关闭开机密码
  • bd是什么文件
  • win7怎么让系统更加快
  • windows8桌面设置
  • linux添加用户命令并添加管理员
  • win7装完系统我的电脑在哪
  • Win10 Mobile Redstone预览版14295出现问题 屏幕闪烁/应用自动关闭等
  • 缺少系统操作怎么办
  • python列表详解
  • jquery左滑切换
  • 狗刨好学吗
  • javascript的基本规范
  • js对象常用方法
  • node.js常用命令
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • pm2系统的操作
  • 浅谈关于混合模式教学的看法
  • JavaScript+html5 canvas实现本地截图教程
  • JavaScript实现同时调用多个函数的方法
  • 23种设计模式全解
  • 季度税额怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设