Let P be a simple polygon with n sides. This paper shows how to preprocess the polygon so that, given two query points p and q inside P, the length of the shortest path inside the polygon from p to q can be found in time O(log n). The path itself must be polygonal and can be extracted in additional time proportional to the number of turns it makes. The preprocessing consists of triangulation plus a linear amount of additional work. © 1989.
Guibas, L. J., & Hershberger, J. (1989). Optimal shortest path queries in a simple polygon. Journal of Computer and System Sciences, 39(2), 126–152. https://doi.org/10.1016/0022-0000(89)90041-X