<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>专题图的叠合 on MU</title><link>https://choy-mutao.github.io/geometry_10/%E5%87%A0%E4%BD%95%E7%AE%97%E6%B3%95/thematic_map/</link><description>Recent content in 专题图的叠合 on MU</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://choy-mutao.github.io/geometry_10/%E5%87%A0%E4%BD%95%E7%AE%97%E6%B3%95/thematic_map/index.xml" rel="self" type="application/rss+xml"/><item><title>线段求交</title><link>https://choy-mutao.github.io/geometry_10/%E5%87%A0%E4%BD%95%E7%AE%97%E6%B3%95/thematic_map/line_segment_intersect/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://choy-mutao.github.io/geometry_10/%E5%87%A0%E4%BD%95%E7%AE%97%E6%B3%95/thematic_map/line_segment_intersect/</guid><description>描述 给定由平面上 \(n\) 条闭线段构成的一个集合 \(S\), 求出 \(S\) 中个线段之间 的所有交点. 其中闭线段是指不同线段端点的重合也将被视为交点
&amp;ldquo;输出敏感&amp;quot;的算法 我们所希望得到的算法，其运行时间不仅取决于输入中线段的数目，还取决于（实际的）交 点数目。这样的算法，被称为“输出敏感的”算法（output-sensitive algorithm）⎯⎯ 也就 是说，这种算法的运行时间对（实际）输出的大小很敏感。也可以称这样一个算法是“交点 敏感的”（intersection-sensitive）⎯⎯ 因为，输出的大小就是由交点的数目决定的
引理 2.1 设两条非水平的线段 \(si\) 和 \(sj\) 只相交于其内部的一点 \(p\)，而且，任 何第三条线段都不经过 \(p\)。则在（扫描线到达）高于 \(p\)$ 的某个事件点处（ 时），\(si\) 和 \(sj\) 必然会彼此紧邻，并因此接受相交测试（于是对应的交点 将被发现）。
几何分析 将一条线段在y轴上的正交投影, 定义为该线段的 y-区间, 任何两条线段, 只要其y-区间没有重叠部分, 则一定不会相交 事件队列(Event Queue) 在该算法中的队列是一个有序队列, 且在该队列中的查找是基 于平衡二分查找树(balanced binary search tree).
Enqueue: 来存放（当前已被检测出来，但尚未发生的）事件。 Dequeue: 把即将发生的下一事件从 Q 中删除掉，并将它返回（给主程序），以便对它进 行处理。 Insert: Sort: 状态结构(Status Structure) 状态(是与当前扫描线相交的所有线段构成的有序序列), 通过一个状态结构（status structure），可以访问某一给定线段\(s\)的（左、右）邻居.
在插入一个线段\(s\)之后, 就可以立即进行相应的相交测试
这个状态结构式动态的, 当有某条线段开始（或不再）与扫描线相交，就应将它插入到状 态结构中（或从状态结构中删去）
在任一时刻(在某一事件点), 状态结构中的所有线段之间具有一个定义明确的次序(与当前 扫描线相交的每条线段，都按照其次序，)，因此可以使用一棵平衡二分查找树来实现状 态结构</description></item></channel></rss>