当前课程知识点:计算几何 > 03. Triangulation > G. Monotone Decomposition > 03-G-05. Possible Cases
好 在介绍完了helper的原理
和它的记录方法之后
我们接下来就要来讨论
如何对helper进行动态的更新
也就是说根据不同的情况
不同的事件
我们应该相应的如何进行处理
我们来看到底有哪几种事件
准确的讲大概有六大类
我们先来看第一类
这一类是比较简单的
也就是在有些时候
我们会碰到这样一个顶点
这个顶点是一个局部的凹角
而且它的两个相邻点
都要比它更低
请注意 这个v并不是一个
stalagmite
因为多边形的内部
是在它的下方
而不是在它的上方
虽然它在形式上很像
我们称这种点叫做 start event
为什么呢
因为在这种情况下
我们可以看到
会有一个退化的梯形
也就是一个三角形将会出现
而我们接下来应该把这个梯形
也要加到我们的状态结构中去
一个新的梯形开始了
所以我们称之为 start event
这种情况我们应该做的事情
当然也就是像刚才所描述的那样
只需要将这个梯形加入到
status structure中
并且别忘了要为它指定一个
当前的helper
谁呢
你应该想的到
在这个地方有一个无穷小的
空的梯形
所以作为这是同时是左边界
和右边界的上端点的
那个v自己
就应该是这个梯形的helper
好 我们再来看对称的
第二种情况
我们称之为end vertex
或者说end event
这个情况是什么呢
我们看到我们碰到了一个
顶点v
而且如果我们再往下走无穷小
比如说0.001秒
我们就将有原来的某一个梯形
会消失掉
不再是活跃的
所以我们称之为end event
相应的在这个时候
我们要做的事情
也就是要在整个status structure中
去找到这个梯形
并且将它从这个结构中剔除掉
随带着它的helper
这个时候已经变得没有用了
好 我们再来看第三种情况
也就是在左侧相邻的情况
我们看到有的时候
我们会碰到这样一个事件点
在这个事件点以上
原先的支撑着一个梯形
可是在此之后
原来这个梯形的左边界
将会被替换为同样在v
这个地方缝合的另一条边界
在这个时候我们说
发生了什么事情呢
我们说在这个时候
与其说是一条左边界
替换了另一条左边界
不如说是原来那个梯形
转化为了一个新的梯形
所以我们要做的工作
你也可以想象的到
就是将原先的这个梯形
在整个的状态结构中
替换为新的这个梯形
当然不要忘了
新的这个梯形
它的helper已经不再
需要沿用
此前那个梯形的helper了
因为你已经看到
它拥有了一个可用的
新的helper
谁呢
就是v
这就是为什么我们最后
要将T’的helper
置为V的原因
好 第四种情况和刚才那种情况
完全的对称的
也就是说有一条右侧的边界
会被相邻的另一条边替换掉
所以在这个时候
我们同样会面临有一个梯形
别替换成另一个梯形的情况
在这种情况下
我们要做的工作完全跟刚才
第三种情况是对称的
不再花费时间了
好 第五种情况
也就是我们期盼的那种情况
我们可能会碰到一个
stalagmite
这个是要干嘛呢
这个时候按照我们此前的设计
我们需要取出一个helper
并且将那个helper
与这个stalagmite相连
从而将它破除掉 破解掉
那么至于这个helper具体在哪
我们这里没有明确的画出
你可以想象的到
无非就是我们前面说的三种情况
在这里头不是最重要的
那么作为这种情况的处理来说
重要的是什么呢
我们重要的是会发现
原来的这个大的梯形
会在这个地方会出现分裂
没错
它会被分裂成左边的一个
以及右边的一个梯形
我们应该在状态结构中
将原先的这个梯形
替换为这样一对左和右两个梯形
当然别忘了
我们还需要设置它们两个梯形的
helper
谁呢
同样去找最大的空梯形
没错
在这个时候
无论是左侧的梯形
还是右侧的梯形
都应该以v作为他们接下来的
helper
这就是为什么我们应该将
左侧的helper和
右侧的helper
都同时置为v
同样 对称的还有第六种情况
也就是我们有的时候会碰到
一个stalactite
刚才如果是split的话
那么现在做的工作
就是刚才的逆过程
刚才是分现在就是合
我们在这种情况下
会发现会有两个梯形相邻
而且它们需要在v这个地方
缝合起来
所以我们要做的事情
就应该是在status structure中
去找到这两个梯形
并且把它们替掉
取而代之以一个合并起来的
更宽的梯形
同样别忘了
这个梯形的helper是谁
我希望你通过这个图
或者通过我们的文字
能够找到答案
-Before we start
--html
-Evaluation
--html
-Online Judge
--html
-Lecture notes
--html
-Discussion
--html
-A. History of This Course
--00-A. History of This Course
-B. What's Computational Geometry
--00-B. What's Computational Geometry
-B. What's Computational Geometry--作业
-C. How to Learn CG Better
--00-C. How to Learn CG Better
-C. How to Learn CG Better--作业
-D. Why English
-A. Convexity
-A. Convexity--作业
-B. Extreme Points
-B. Extreme Points--作业
-C. Extreme Edges
-C. Extreme Edges--作业
-D. Incremental Construction
--01-D-01. Decrease and Conquer
--01-D-02. In-Convex-Polygon Test
--01-D-03. Why Not Binary Search
-D. Incremental Construction--作业
-E. Jarvis March
--01-E-06. Lowest-Then-Leftmost
-E. Jarvis March--作业
-F. Lower Bound
--01-F-02. CAO Chong's Methodology
-F. Lower Bound--作业
-G. Graham Scan: Algorithm
-G. Graham Scan: Algorithm--作业
-H. Graham Scan: Example
-H. Graham Scan: Example--作业
-I. Graham Scan: Correctness
-I. Graham Scan: Correctness--作业
-J. Graham Scan: Analysis
-J. Graham Scan: Analysis--作业
-K. Divide-And-Conquer (1)
-K. Divide-And-Conquer (1)--作业
-L. Divide-And-Conquer (2)
--01-L-03. Topmost + Bottommost ?
--01-L-07. More Considerations
-L. Divide-And-Conquer (2)--作业
-M. Wrap-Up
-0. Introduction
-0. Introduction--作业
-A. Preliminary
-A. Preliminary--作业
-B. Interval Intersection Detection
-B. Interval Intersection Detection--作业
-C. Segment Intersection Reporting
-C. Segment Intersection Reporting--作业
-D. BO Algorithm: Strategy
--02-D-01. Proximity & Separability
--02-D-02. Comparability & Ordering
-D. BO Algorithm: Strategy--作业
-E. BO Algorithm: Implementation
--02-E-03. Events & Operations
-E. BO Algorithm: Implementation--作业
-F. BO Algorithm: Analysis
--02-F-04. Complexity of Event Queue
--02-F-05. Complexity of Status Structure
-F. BO Algorithm: Analysis--作业
-G. Convex Polygon Intersection Detection
--02-G-01. Problem Specification
--02-G-02. Monotone Partitioning
--02-G-04. Decrease-And-Conquer
-G. Convex Polygon Intersection Detection--作业
-H. Edge Chasing
--02-H-01. Eliminating Sickles
-H. Edge Chasing--作业
-I. Plane Sweeping
-I. Plane Sweeping--作业
-J. Halfplane Intersection Construction
-J. Halfplane Intersection Construction--作业
-0. Methodology
-0. Methodology--作业
-A. Art Gallery Problem
--03-A-02. Lower & Upper Bounds
--03-A-04. Approximation & Classification
-A. Art Gallery Problem--作业
-B. Art Gallery Theorem
--03-B-01. Necessity of floor(n/3)
--03-B-02. Sufficiency by Fan Decomposition
-B. Art Gallery Theorem--作业
-C. Fisk's Proof
--03-C-04. Pigeon-Hole Principle
-C. Fisk's Proof--作业
-D. Orthogonal Polygons
--03-D-01. Necessity of floor(n/4)
--03-D-02. Sufficiency by Convex Quadrilateralization
-D. Orthogonal Polygons--作业
-E. Triangulation
-E. Triangulation--作业
-F. Triangulating Monotone Polygons
--03-F-02. Monotonicity Testing
--03-F-04. Stack-Chain Consistency
-F. Triangulating Monotone Polygons--作业
-G. Monotone Decomposition
-G. Monotone Decomposition--作业
-I. Tetrahedralization
--03-I-01. Polyhedron Decomposition
--03-I-02. Schonhardt's Polyhedron
-I. Tetrahedralization--作业
-A. Introduction
--04-A-02. Dining Halls on Campus
--04-A-03. More Analogies & Applications
-A. Introduction--作业
-B. Terminologies
--04-B-02. Intersecting Halfspaces
--04-B-04. Planar Voronoi Diagram
-B. Terminologies--作业
-C. Properties
--04-C-03. Nearest = Concyclic
--04-C-04. Number of Nearest Sites = Degree
-C. Properties--作业
-D. Complexity
-D. Complexity--作业
-E. Representation
-E. Representation--作业
-F. DCEL
-F. DCEL--作业
-G. Hardness
--04-G-03. Voronoi Diagram In General Position
-G. Hardness--作业
-H. Sorted Sets
--04-H-01. Convex Hull Made Easier
--04-H-02. Convex Hull As A Combinatorial Structure
--04-H-03. Voronoi Diagram As A Geometric Structure
-H. Sorted Sets--作业
-I. VD_sorted
--04-I-06. Sorting Not Made Easier
-I. VD_sorted--作业
-J. Naive Construction
-J. Naive Construction--作业
-K. Incremental Construction
-K. Incremental Construction--作业
-L. Divide-And-Conquer
--04-L-09. Intersecting with Cells
-L. Divide-And-Conquer--作业
-M. Plane-Sweep
--04-M-09. Circle Event: What, When & Where
-M. Plane-Sweep--作业
-A. Point Set Triangulation
-A. Point Set Triangulation--作业
-B. Delaunay Triangulation
-B. Delaunay Triangulation--作业
-C. Properties
-C. Properties--作业
-D. Proximity Graph
--05-D-02. Relative Neighborhood Graph
-D. Proximity Graph--作业
-E. Euclidean Minimum Spanning Tree
-E. Euclidean Minimum Spanning Tree--作业
-F. Euclidean Traveling Salesman Problem
-G. Minimum Weighted Triangulation
-G. Minimum Weighted Triangulation--作业
-H. Construction
--05-H-03. Maximizing The Minimum Angle
--05-H-04. Evolution By Edge Flipping
-H. Construction--作业
-I. RIC With Example
-I. RIC With Example--作业
-J. Randomized Incremental Construction
--05-J-01. Recursive Implementation
--05-J-02. Iterative Implementation
-J. Randomized Incremental Construction--作业
-K. RIC Analysis
--05-K-04. Types Of Edge Change
--05-K-05. Number Of Edge Changes
--05-K-07. Number Of Rebucketings
--05-K-08. Probability For Rebucketing
--05-K-10. Further Consideration
-0. Online/Offline Algorithms
--06-0. Online/Offline Algorithms
-0. Online/Offline Algorithms--作业
-A. Introduction
--06-A-03. Assumptions For Clarity
--06-A-05. Performance Measurements
-A. Introduction--作业
-B. Slab Method
--06-B-02. Ordering Trapezoids
-B. Slab Method--作业
-C. Persistence
--06-C-01. Ephemeral Structure
--06-C-02. Persistent Structure
-C. Persistence--作业
-D. Path Copying
--06-D-03. Storage Optimization
-D. Path Copying--作业
-E. Node Copying
-E. Node Copying--作业
-F. Limited Node Copying
-G. Kirkpatrick Structure
--06-G-01. Optimal And Simpler
--06-G-06. The More The Better
--06-G-07. The Fewer The Better
--06-G-09. Existence Of Independent Subset
--06-G-10. Construction Of Independent Subset
-G. Kirkpatrick Structure--作业
-H. Trapezoidal Map
--06-H-03. Properties & Complexity
--06-H-04. Search Structure: Example
--06-H-05. Search Structure: Nodes
--06-H-06. Search Structure: Performance
-H. Trapezoidal Map--作业
-I. Constructing Trapezoidal Map
--06-I-04. Case 1: Two Endpoints
--06-I-05. Case 2: One Endpoint
--06-I-06. Case 3: No Endpoints
-J. Performance Of Trapezoidal Map
--06-J-03. Number Of Ray Trimmed
--06-J-04. Number Of Trapezoidals Created (1)
--06-J-05. Number Of Trapezoidals Created (2)
--06-J-06. Time For Point Location
--06-J-07. Size Of Search Structure
--06-J-08. Fixed Query Point + Randomly Created Maps
--06-J-10. Probability Of Enclosing Trapezoid Changed
-A. Range Query
--07-A-01. 1-Dimensional Range Query
-A. Range Query--作业
-B. BBST
--07-B-02. Lowest Common Ancestor
-B. BBST--作业
-C. kd-Tree: Structure
-C. kd-Tree: Structure--作业
-D. kd-Tree: Algorithm
-D. kd-Tree: Algorithm--作业
-E. kd-Tree: Performance
--07-E-01. Preprocessing Time + Storage
-E. kd-Tree: Performance--作业
-F. Range Tree: Structure
--07-F-03. x-Query * y-Queries
-F. Range Tree: Structure--作业
-G. Range Tree: Query
-G. Range Tree: Query--作业
-H. Range Tree: Performance
-H. Range Tree: Performance--作业
-I. Range Tree: Optimization
--07-I-04. Fractional Cascading
-A. Orthogonal Windowing Query
-A. Orthogonal Windowing Query--作业
-B. Stabbing Query
-C. Interval Tree: Construction
-C. Interval Tree: Construction--作业
-D. Interval Tree: Query
-D. Interval Tree: Query--作业
-E. Stabbing With A Segment
--08-E-03. Query Algorithm (1)
--08-E-04. Query Algorithm (2)
-F. Grounded Range Query
--08-F-03. 1D-GRQ Using Range Tree
--08-F-04. 1D-GRQ By Linear Scan
-G. 1D-GRQ Using Heap
-G. 1D-GRQ Using Heap--作业
-H. Priority Search Tree
--08-H-03. Sibling Partitioning
-H. Priority Search Tree--作业
-I. 2D-GRQ Using PST
-I. 2D-GRQ Using PST--作业
-J. Segment Tree
--08-J-01. General Windowing Query
--08-J-02. Elementary Interval
--08-J-06. Solving Stabbing Query
--08-J-11. Constructing A Segment Tree
--08-J-12. Inserting A Segment (1)
--08-J-13. Inserting A Segment (2)
--08-J-14. Inserting A Segment (3)
-K. Vertical Segment Stabbing Query