位置: 编程技术 - 正文

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)

  • 外省人员收入怎么查
  • 银行短期存款利息怎么算
  • 代扣代缴境外企业增值税
  • 劳动生产总值和总产值是一回事吗
  • 公司租房水电费如何入帐
  • 用于连续生产的消费税计入
  • 个税申报截止日期2023年8月
  • 营改增服务
  • 合作建房如何纳税
  • 税务房屋租赁发票图片
  • 工程施工企业人工成本最高多少
  • 企业网上申报国税流程
  • 小微企业季度超过30万怎么报增值税
  • 旅游业适用差额征税政策时如何开具发票?
  • 关于土地增值税若干问题的通知
  • 高新企业财务做账要求
  • 小规模纳税人可以享受小微企业吗
  • 企业做账会计需要什么资质
  • 免税销售额对应的进项税额
  • 补贴收入营业外收入比例过高
  • 手机文件打开方式怎么设置默认
  • win7如何隐藏任务栏正在游戏的图标
  • 营业款怎么存入公司账户
  • 法人把资产转移到国外有没有限制
  • linux怎么用gcc编译c程序
  • PHP:pg_num_rows()的用法_PostgreSQL函数
  • 基于Python的flask百战电商流程图
  • 固定资产汽车抵扣新政策
  • 非货币性资产投资特殊性税务处理
  • vi应用项目
  • vue每一列内容过多自动换行
  • 高新技术企业研发费比例
  • uniapp微信公众号授权
  • htmlspecialchars_decode
  • php 密码加密
  • 不良品扣款应入哪个科目
  • 销售佣金 会计分录
  • 以前年度的成本忘了结转然后怎么办
  • 银行转账回执单掉了
  • pandas常见操作
  • python poetry如何创建项目
  • 更改增值税申报表退税在哪里退钱
  • 工程结算是含有增值税吗
  • 明细账怎么补登
  • 一般计税增值税预缴税款怎么算
  • 弥补以前年度亏损怎么算
  • 企业所得税如何抵扣
  • 增值税及附加税计算公式
  • 补缴以前年度企业所得税如何做账
  • 新政府会计下专业学什么
  • 作废的现金支票可以直接碎掉吗
  • 过路费纸质发票可以抵扣增值税吗
  • 为取得交易性金融资产支付的手续费
  • 银行日记账余额与银行对账单不符
  • 什么是关联企业?关联企业之间业务往来
  • 无法启动diagnostic policy service服务
  • win8连接网络
  • windows么
  • win8系统磁盘清理在哪里
  • 苹果mac电脑不会关机
  • win7系统桌面图标有遮挡
  • neoDVD.exe - neoDVD是什么进程 有什么用
  • win10系统忘记电脑密码
  • linux将文本写入文件
  • jquery添加css样式
  • ubuntu for android
  • jquery page
  • asm/semaphore.h: No such file or directory
  • python matplotlab
  • unity 摄像机
  • JavaScript中的数据类型分为两大类
  • android四大组件面试
  • jQuery Easyui Tabs扩展根据自定义属性打开页签
  • Python回调函数注册类型不匹配
  • python调用fortran函数传入数组
  • python之父推荐的书
  • 广东省国家税务总局班子成员
  • 铁岭医保网上怎么交费
  • 纳税服务存在的不足之处
  • 石家庄经开区税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设