# Create competing polygons from points and bearings (azimuth)

I have a set of points on a city, representing CELL TOWER locations. Each CELL TOWER has 3 or 4 different CELL RADIOS pointing to diferent directions (Azimuth). What I need is an algorithm to take each CELL TOWER coordinate, and its corresponding CELL RADIO azimuth, an run a polygon growing function to fill the city with the CELL's area of influences.

I imagine the growing function like a diffusion or wave propagation, and would need it to stop whenever two CELL "signals" (polygons) collide with one another, effectually stopping the algorithm on such area.

Its similar to Voronoi polygons, but instead of growing areas "radially" from the CELL TOWER CENTER, I need to it to grow with a certain bearing or direction, from the original point takin into account the azimuths.

[On the left image you can see the points representing the CELL TOWER, each having blue lines projecting out of the center representing the direction of the cell radio. The direction is the azimuth which is given for every cell.

ON the Right you can see a graph of what Im looking for, where each number and color represent a CELL RADIO signal propagated until reach another CELL RADIO SIGNAL.]1

• Thanky you very much Babel! I was exploring the option you mentioned, but the grid got so big, it became very slow. In the end, found an alternative way to do it with voronois, by creating a point for each bearing just 10 meters away from the center, and doing voronois for all points. Though I find there are some diferences with one option an the other, since with your approach, the lines o sight of the cell are prefered until the distances marked by the line. Oct 7, 2022 at 18:22

2. Create a grid and calculate for each cell which line is the nearest one - e.g. using this expression: `overlay_nearest('line_layer','id')[0]` and replace `line_layer` and `id` with the relevant names.