Consider two entities with constant but not necessarily equal velocities, moving on two given piece-wise linear trajectories inside a simple polygon $P$. The Trajectory Range Visibility problem deals with determining the sub-trajectories on which two entities become visible to each other. A more straightforward decision version of this problem is called Trajectory Visibility, where the trajectories are line segments. The decision version specifies whether the entities can see one another. This version was studied by P. Eades et al. in 2020, where they supposed given constant velocities for the entities. However, the approach presented in this paper supports non-constant complexity trajectories. Furthermore, we report every pair of constant velocities with which the entities can see each other. In particular, for every constant velocity of a moving entity, we specify: $(1)$ All visible parts of the other entity's trajectory. $(2)$ All possible constant velocities of the other entity to become visible. Regarding line-segment trajectories, we present $\mathcal{O}(n \log n)$ running time algorithm which obtains all pairs of sub-trajectories on which the moving entities become visible to one another, where $n$ is the complexity of $P$. Regarding the general case, we provide an algorithm with $\mathcal{O}(n \log n + m(\log m + \log n))$ running time, where $m$ indicates the complexity of both trajectories. We offer $\mathcal{O}(\log n)$ query time for line segment trajectories and $\mathcal{O}(\log m + k)$ for the non-constant complexity ones s.t. $k$ is the number of velocity ranges reported in the output. Interestingly, our results require only $\mathcal{O}(n + m)$ space for non-constant complexity trajectories.
翻译:考虑两个具有恒定但不一定相等速度的实体,在简单多边形 $P$ 内沿两条给定的分段线性轨迹运动。轨迹段可见性范围问题旨在确定两实体能够相互可见的子轨迹段。该问题的更直接判定版本称为轨迹可见性,其中轨迹为线段。判定版本明确两实体是否能够相互看见。该版本由 P. Eades 等人于 2020 年研究,他们假设实体具有恒定速度。然而,本文提出的方法支持非恒定复杂度的轨迹。此外,我们报告了能使两实体相互可见的每一对恒定速度。具体而言,对于运动实体的每个恒定速度,我们指明:$(1)$ 另一实体轨迹的所有可见部分;$(2)$ 另一实体为变得可见而可能采取的所有恒定速度。针对线段轨迹,我们提出了一种运行时间为 $\mathcal{O}(n \log n)$ 的算法,该算法可获得运动实体相互可见的所有子轨迹段对,其中 $n$ 是 $P$ 的复杂度。针对一般情况,我们提供了一种运行时间为 $\mathcal{O}(n \log n + m(\log m + \log n))$ 的算法,其中 $m$ 表示两条轨迹的复杂度。对于线段轨迹,我们提供 $\mathcal{O}(\log n)$ 的查询时间;对于非恒定复杂度的轨迹,查询时间为 $\mathcal{O}(\log m + k)$,其中 $k$ 是输出中报告的速度范围数量。有趣的是,对于非恒定复杂度的轨迹,我们的结果仅需 $\mathcal{O}(n + m)$ 的空间。