DOI QR코드

DOI QR Code

A Convex Layer Tree for the Ray-Shooting Problem

광선 슈팅 문제를 위한 볼록 레이어 트리

  • Kim, Soo-Hwan (Department of Embedded Software, Busan University of Foreign Studies)
  • Received : 2017.02.01
  • Accepted : 2017.03.21
  • Published : 2017.04.30

Abstract

The ray-shooting problem is to find the first intersection point on the surface of given geometric objects where a ray moving along a straight line hits. Since rays are usually given in the form of queries, this problem is typically solved as follows. First, a data structure for a collection of objects is constructed as preprocessing. Then, the answer for each query ray is quickly computed using the data structure. In this paper, we consider the ray-shooting problem about the set of vertical line segments on the x-axis. We present a new data structure called a convex layer tree for n vertical line segments given by input. This is a tree structure consisting of layers of convex hulls of vertical line segments. It can be constructed in O(n log n) time and O(n) space and is easy to implement. We also present an algorithm to solve each query in O(log n) time using this data structure.

광선 슈팅 문제는 주어진 기하 객체들에 대해서 직선을 따라서 이동하는 광선이 처음으로 부딪히는 객체의 점을 찾는 문제이다. 광선은 보통 질의의 형태로 주어지기 때문에, 이 문제의 일반적인 해법은 다음과 같다. 먼저, 전처리 과정으로, 주어진 객체들에 대한 자료구조를 구축한다. 그 다음, 이 자료구조를 이용하여 각 질의에 대한 답을 빠르게 구한다. 본 논문에서는 x축 상에 놓인 수직 선분들 집합에 대한 광선 슈팅 문제를 고려한다. 본 논문에서는 입력으로 주어진 n개의 수직 선분들에 대해 볼록 레이어 트리라고 부르는 새로운 자료구조를 제시한다. 이것은 수직 선분들의 볼록 외피들의 레이어로 구성되는 이진 트리이다. 이 트리는 O(n log n) 시간과 O(n) 공간의 알고리즘으로 구축되며 구현이 용이하다. 또한 이 자료구조를 사용하여 각 질의를 O(log n) 시간에 수행하는 알고리즘을 제시한다.

Keywords

References

  1. M. Pellegrini, "Ray shooting and lines in space," in Handbook of Discrete and Computational Geometry, New York, CRC Press, ch. 37, pp. 599-614, 1997.
  2. D. Chen and H. Wang, "Visibility and ray shooting queries in polygonal domains," Computational Geometry: Theory and Applications, vol. 48, no. 2, pp. 31-41, Feb. 2015. https://doi.org/10.1016/j.comgeo.2014.08.003
  3. M. Ishaque, B. Speckmann, and C. D. Toth, "Shooting permanent rays among disjoint polygons in the plane," SIAM(Society for Industrial and Applied Mathematics) Journal on Computing, vol. 41, no. 4, pp. 1005-1027, Aug. 2012.
  4. Y. Zheng and K. Yamane, "Ray-shooting algorithms for robotics," IEEE Transactions on Automation Science and Engineering, vol. 10, no. 4, pp. 862-874, July 2013. https://doi.org/10.1109/TASE.2013.2272578
  5. A. A. Behmanesh, S. Pourbahrami, and B. Gholizadeh, "Reducing render time in ray tracing by pixel averaging," International Journal of Computer Graphics & Animation, vol. 2, no. 4, pp. 15-24, Oct. 2012. https://doi.org/10.5121/ijcga.2012.2402
  6. D. Z. Chen and H. Wang, "Weak visibility queries of line segments in simple polygons," Computational Geometry: Theory and Applications, vol. 48, no. 6, pp. 443-452, Aug. 2015. https://doi.org/10.1016/j.comgeo.2015.02.001
  7. M. Pellegrini, "Ray shooting on triangles in 3-space," Algorithmica, vol. 9, no. 5, pp. 471-494, May 1993. https://doi.org/10.1007/BF01187036
  8. P. K. Agarwal and J. Matousek, "On range searching with semialgebraic sets," Discrete & Computational Geometry, vol. 11, no. 4, pp. 393-418, Apr. 1994. https://doi.org/10.1007/BF02574015
  9. M. de Berg, Ray Shooting, Depth Orders and Hidden Surface Removal, LNCS, vol. 703, New York, Springer-Verlag, 1993.
  10. M. Sharir and H. Shaul, "Ray shooting amid balls, farthest point from a line, and range emptiness queries," in Proceedings of 16th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 525-534, 2005.