问题
给定一系列线段,每条线段可以是水平或者竖直。求相交的线段
解决
算法的基本思想是先将线段以x坐标进行排序。做一条扫描线,从左往右扫描,也就是下图中的红线。
当进入一条水平的线时,记录该线段的y坐标。
当走出水平线时,从二叉查找树中删除该线段的y坐标。
当遇到竖直的线时,判断该线段范围内有无之前记录的坐标即可判断两线是否相交。
时间: 2024-10-12 15:03:46
给定一系列线段,每条线段可以是水平或者竖直。求相交的线段
算法的基本思想是先将线段以x坐标进行排序。做一条扫描线,从左往右扫描,也就是下图中的红线。
当进入一条水平的线时,记录该线段的y坐标。
当走出水平线时,从二叉查找树中删除该线段的y坐标。
当遇到竖直的线时,判断该线段范围内有无之前记录的坐标即可判断两线是否相交。