Efficient binary space partitions for hidden-surface removal and solid modeling
Discrete & Computational Geometry - Selected papers from the fifth annual ACM symposium on computational geometry, Saarbrücken, Germany, June 5-11, 1989
Applications of a new space-partitioning technique
Discrete & Computational Geometry
A pedestrian approach to ray shooting: shoot a ray, take a walk
SODA '93 Selected papers from the fourth annual ACM SIAM symposium on Discrete algorithms
Kinetic maintenance of context-sensitive hierarchical representations for disjoint simple polygons
Proceedings of the eighteenth annual symposium on Computational geometry
Binary Space Partitions for Line Segments with a Limited Number of Directions
SIAM Journal on Computing
On Spanning Trees with Low Crossing Numbers
Data Structures and Efficient Algorithms, Final Report on the DFG Special Joint Initiative
Segment endpoint visibility graphs are Hamiltonian
Computational Geometry: Theory and Applications - Special issue on the thirteenth canadian conference on computational geometry - CCCG'01
Kinetic collision detection between two simple polygons
Computational Geometry: Theory and Applications
Visibility Algorithms in the Plane
Visibility Algorithms in the Plane
Computational Geometry: Algorithms and Applications
Computational Geometry: Algorithms and Applications
Compatible geometric matchings
Computational Geometry: Theory and Applications
Binary plane partitions for disjoint line segments
Proceedings of the twenty-fifth annual symposium on Computational geometry
Multirobot rendezvous with visibility sensors in nonconvex environments
IEEE Transactions on Robotics
Binary plane partitions for disjoint line segments
Proceedings of the twenty-fifth annual symposium on Computational geometry
Motorcycle graphs: Stochastic properties motivate an efficient yet simple implementation
Journal of Experimental Algorithmics (JEA)
Convex partitions with 2-edge connected dual graphs
Journal of Combinatorial Optimization
Hi-index | 0.00 |
We present a data structure for ray shooting-and-insertion in the free space among disjoint polygonal obstacles with a total of $n$ vertices in the plane, where each ray starts at the boundary of some obstacle. The portion of each query ray between the starting point and the first obstacle hit is inserted permanently as a new obstacle. Our data structure uses O(n log n) space and preprocessing time, and it supports m successive ray shooting-and-insertion queries in O(n log2 n + m log m) total time. We present two applications for our data structure: (1) Our data structure supports efficient implementation of auto-partitions in the plane i.e. binary space partitions where each partition is done along the supporting line of an input segment. If n input line segments are fragmented into m pieces by an auto-partition, then it can now be implemented in O(n log2n+m log m) time. This improves the expected runtime of Patersen and Yao's classical randomized auto-partition algorithm for n disjoint line segments to O(n log2 n). (2) If we are given disjoint polygonal obstacles with a total of n vertices in the plane, a permutation of the reflex vertices, and a half-line at each reflex vertex that partitions the reflex angle into two convex angles, then the folklore convex partitioning algorithm draws a ray emanating from each reflex vertex in the prescribed order in the given direction until it hits another obstacle, a previous ray, or infinity. The previously best implementation (with a semi-dynamic ray shooting data structure) requires O(n3/2-ε/2) time using O(n1+ε) space. Our data structure improves the runtime to O(n log2 n).