ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

扫描线学习

2020-01-21 22:56:45  阅读:191  来源: 互联网

标签:扫描线 投影 扫描 学习 flag https 区间


对扫描线步骤的理解:

1:首先要保存所有的边,并按照x值从小到大排序,如果是左边,标记为1,如果是右边,标记为-1。
    struct line
    {
        double from,to,x;//边起点y坐标,终点y坐标,x坐标
        int flag;       //左右边标记
    }
2:扫描线从左往右扫描,每遇到一条边就停下来,将这条边投影到总区间上,“投影”其实就是执行在总区间中插入或者删除线段操作。
  >扫描到flag为1的边,为左边,往总区间加上这条线段,具体执行就是对应那一段值+1。
  >扫描到flag为-1的边,为右边,要从左区间中删除,那段值都-1。
3:每扫描一条边投影到总区间后,要计算总区间现在被覆盖的总长度;然后用下一条边的x值减当前边的x值,乘上区间被覆盖的长度,就能算出一部分面积,一直计算下去就能得到总面积
    


    参考资料:https://blog.csdn.net/ITcbd/article/details/37968599
     https://zhuanlan.zhihu.com/p/82104915
     https://oi-wiki.org/geometry/scanning/
 

标签:扫描线,投影,扫描,学习,flag,https,区间
来源: https://www.cnblogs.com/A-sc/p/12227243.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有