位置: 编程技术 - 正文

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)

  • 捐赠支出增值税
  • 国家税务登记证是什么样子的
  • 唐朝的两税法是什么
  • 企业所得税税负高是什么意思
  • 金蝶软件制造费用结转步骤
  • 开具了红字发票信息表的税额需要转出吗
  • 合并报表中少数股东权益是什么意思
  • 买车时的保险包括哪些费用,多少钱
  • 免抵退附加
  • 购买固定资产未收到发票怎么办
  • 玻璃制品有哪些
  • 现金折扣怎么计算消费税
  • 公司支付广告服务费账务处理
  • 参加国外展会费用
  • 进口商品合同
  • 质量抽样检查
  • 坏账准备增加记什么方
  • 合营企业之间为什么不构成关联方
  • 企业计算缴纳的所得税费用
  • 购买方现金折扣计入什么科目
  • php制作一个表单
  • 冲销上月多记收入
  • 罂粟是不是草果
  • 应收账款怎么做分录
  • 累计计税折旧如何调整
  • 前端项目中遇到的最大困难,怎么解决的
  • PHP:oci_bind_by_name()的用法_Oracle函数
  • 微信小程序插件有哪些
  • 华盛顿州帕卢斯心雕塑
  • 银行转来委托收款
  • php制作简单的表单代码
  • vuex iframe
  • 小规模纳税人的增值税账务处理
  • 没有关系怎么表达
  • 计算机视觉的应用
  • 自动化测试是怎样的
  • php xml转数组
  • thinkphp 分页
  • 固定资产毁损应该填制什么凭证
  • 配电箱安装方法
  • 建筑业的账务处理方法
  • Python解释器有哪些种类
  • mongodb document
  • python 逻辑取反
  • 织梦cms怎么样
  • 所得税费用怎样算出来的
  • 融资租赁业务应包括哪些
  • 物流公司驾驶员工资计算方式
  • 其他应收应付如何平账
  • 培训费属于什么
  • 退税流程怎么操作个人所得税2022
  • MySQL的主从复制基于什么实现的?
  • mysql默认值怎么设置
  • 兼营和混合销售怎么区分
  • 新准则下交易性金融债券
  • 违约金 专票
  • 研发费用加计扣除75%还是100%
  • 暂估费用科目
  • 对存在标的资产的亏损合同,企业应首先对标的资产
  • 可供出售金融资产和交易性金融资产
  • 发生的费用
  • 员工预支工资属于什么科目
  • CMD命令操作MSSQL2005数据库(命令整理)
  • sql没有数据库
  • mysqlsum查询慢
  • linux igb
  • win8.1应用商店下载位置
  • Win10 Mobile 10586.107怎么更新?Lumia950/XL/550可升级
  • jQuery实现ctrl+enter(回车)提交表单
  • 微信小程序tabbar字体颜色
  • jquery 控制暂停和播放
  • python读取文件指定内容
  • python ftps
  • python中字典的键值对
  • public services翻译
  • javascript如何
  • javascript怎么学
  • 山东发票查询系统平台
  • 青岛税税通怎么切换企业
  • 土地增值税分期清算条件?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设