梁友栋-Barsky算法是一种参数线裁剪算法。

为两个参数方程,为两点的差值,其中的由来是整理参数方程中三角函数的值得出,因为取值需要在裁剪框内,所以u只需要取0~1范围内的就足够。

是结合四条边界线得出的组合方程,在参数方程中,得到u的值就可以得出最终的解,所以在上面式子中其他的量都可以抽象化,就可以得出他的

在这里p和q都是抽象表示,由于不等式是与四条边界线结合得出,所以p和q的具体定义则为:

用x边界线举例说明,如果是左边界线,p的末端点大于初始点,p的值为负,如果与左边界线有交点,则一定为从外到内的线,右侧则为从内到外。全部验证可以得出算法中的结论

为了求参数u的值,取u的边界条件:

对于从外侧到内侧的线中,u需要取各个值中最大值或是0值,为什么这么取呢?

参数方程中t表示与定点的长度,u的本质与t相同,所以u相当于对于初始点的距离值,那么就容易得出,距离初始点最远的值应当是搭在了裁剪窗口边上。也就是u的最大值

从内到外则同理,所以取u的最小值。

有了u值之后,就可以在参数方程中求出交点坐标,可以取得裁剪线。

梁友栋-Barsky裁剪算法原理分析相关推荐

  1. 理解梁友栋-Barsky裁剪算法

    学习图形学窗口裁剪算法时,很多教材只是对梁友栋-Barsky裁剪算法过程做了简单的介绍,并没有对原理过多的解释.老而学者如秉烛夜行,用了两三天时间终于搞明白算法原理. 消除指定区域内或区域外的图形部分 ...

  2. 计算机图形学:Cohen-Sutherland直线段剪裁算法及梁友栋-Barsky裁剪算法(算法原理及代码实现)

    一.算法实现原理 Cohen-Sutherland直线段剪裁算法: 算法原理: (1)判断线段两端是否都落在窗口内,如果是,则线段完全可见,否则进行下一步 (2)判断线段两端是否都落在窗口外,如果是, ...

  3. 计算机图形学常用算法实现9 梁友栋-Barskey裁剪算法

    这个算法的效率比前面提到的Cohen-Sutherland要高 思路是把直线表示为参数方程形式, x= x1+udx y = y1+udy 由xmin<x<xmax ymin<y&l ...

  4. java实现梁友栋裁剪算法_梁友栋裁剪算法

    梁友栋裁剪算法 用任意颜色绘制窗口,并用一种颜色绘制线段,利用P181页所示梁友栋裁剪算法对线段进行裁剪.要求能够演示出裁剪过程,裁剪前的图形要绘出,当按下任意按键,绘制出裁剪结果.请使用TC打开源程 ...

  5. 计算机图形学 裁剪算法源代码,OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc...

    OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分  .<计算 ...

  6. [计算机图形学]Python实现梁友栋裁剪算法

    梁友栋算法是很简单的一个裁剪算法,但是只适用于裁剪范围是矩形框并且矩形框边界平行于坐标轴的情况. 实验结果: 完整代码: 注意代码没有写到线是平行和垂直的情况,也没有考虑线不经过框的情况,所以输入的时 ...

  7. Adaboost算法原理分析和实例+代码(简明易懂)

    Adaboost算法原理分析和实例+代码(简明易懂) [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/70995333   ...

  8. Adaboost算法原理分析和实例+代码(转载)

    [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/70995333     本人最初了解AdaBoost算法着实是花了几天时 ...

  9. 利用计算机语言实现ID3算法,机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf...

    机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf 还剩 23页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保 ...

最新文章

  1. 《算法技术手册》一2.4.6 二次方的算法性能
  2. 图论 ---- CF1495D .BFS Trees(图论最短路生成树+枚举计数+树的层次性)
  3. 骆驼iptv_骆驼路线的主/从故障转移
  4. Git笔记(二)——[diff, reset]
  5. JQuery让input从disabled变成enabled
  6. STM32的AFIO时钟什么时候开启?
  7. 离线安装Electron
  8. 【PHP 面试知识梳理】
  9. python sizeof_python 变量作用域 v.__sizeof__() python 深复制 一切皆对象 尽量减少内存消耗 赋值语句的原理...
  10. 数学之美系列八-- 贾里尼克的故事和现代语言处理
  11. 服务器群晖系统安装,使用电脑为群晖NAS安装DSM操作系统
  12. 操作系统OS lab4 (xv6) 实验报告
  13. 回归平静是一种自我保护
  14. cf Educational Codeforces Round 49 D. Mouse Hunt
  15. 用上office365后配合RaiDrive效率如何提高
  16. android辅助功能手势,Android辅助功能——全局手势放大实现原理
  17. PyTorch学习率衰减策略:指数衰减(ExponentialLR)、固定步长衰减(StepLR)、多步长衰减(MultiStepLR)、余弦退火衰减(CosineAnnealingLR)
  18. python-定时给指定微信女朋友发送天气预报和每日一句自动聊天抢红包抢票
  19. linux环境搭建篇-redis设置密码
  20. 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)

热门文章

  1. oracle12清理内存,ORACLE 12.1 内存消耗完宕机
  2. 计算机百科知识竞赛活动背景,百科知识竞赛策划书2017
  3. 通达信数据接口api的编写脚本
  4. maya2020卸载不干净安装不了_maya2020卸载不干净_maya怎样卸载干净,如何完全彻底删除清理干净MAYA各种残留注册表和文件?......
  5. 《C语言程序设计》课程建设标准,《C语言程序设计》精品课程建设刍议
  6. 解释地震等级与地震烈度的含义(收藏)
  7. 丰富多彩的迷你特斯拉线圈的频率锁定电路
  8. MapReduce详解
  9. 年度战略方案制定步骤
  10. 雅思听力之高频词汇篇:全球地名