Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorStaals, F.
dc.contributor.authorHu, Lisa
dc.date.accessioned2025-08-31T00:01:27Z
dc.date.available2025-08-31T00:01:27Z
dc.date.issued2025
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/50188
dc.description.abstractWe study the following problem. Let P be a simple polygon with n vertices and let B be a set of points moving along a linear path in P. In other words, the trajectory of an entity b ∈ B is a linear function [0, 1] → P. Given a query set R of linearly moving points in P, determine for each r ∈ R if it can see any entity b ∈ B. We propose a kinetic data structure to maintain the combinatorial structure of the union of visibility polygons. To capture the changes over time, we model the changes in the union as a three-dimensional structure, where the z-axis represents the time. We call this three-dimensional structure the Visibility Pillar VP. The visibility pillar is of size O(n^3m^3). On top of the union, we also maintain a vertical decomposition. Each time slice gives us an x-monotone subdivision in R^2. To detect and handle combinatorial changes, we use an event-driven approach, where our goal is to detect the critical times at which the union and the vertical decomposition changes combinatorially. Processing all combinatorial changes to VP takes O(n^3m^3 log(nm)) time, and it takes O(n^4m^4 log(nm)) time to process all combinatorial changes to the vertical decomposition. We then present an algorithm that tests if query entities see any entity b ∈ B. This algorithm uses the union boundaries and vertical decomposition boundaries to determine if a query entity crosses a trapezoid that is covered by the union at a given time, which takes O(|R|·max_{r∈R} Tr(n,m)·log(|R|+nm^2)+n^4m^4(log(|R|+nm^2)+log(nm)+k)) time execute, where Tr(n,m) is defined as the number of trapezoids a query entity r crosses over time. Since [1], solves a similar problem, i.e. point location in a three-dimensional cell complex, we adapted the approach discussed in the paper to our setting. We use their approach to build a dynamic point location structure to test if a query entity is contained in a trapezoid covered by the union at the time it appears for the first time. This also allows us to perform point location queries in the visibility pillar, where we can test if a query entity is visible at a given time. Performing such a query takes O(log^2(nm)) time.
dc.description.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectWe analysed the problem whether two groups of moving animals can see each other. In our problem, we have two groups of monkeys B and R, which we model using two sets of points. They move along a linear path in a bounded environment. We want to determine for each monkey in group R if it can see a monkey from group B.
dc.titleComputing Visibility between moving Points
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordsvisibility; visibility polygon; kinetic data structure; vertical decomposition
dc.subject.courseuuComputing Science
dc.thesis.id51686


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record