Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to plot a 2-D cone in python (matplotlib)?

I'm considerably new to python and making a map of a room. I've plotted the room, obstacles etc. And some points (which are sensors). Now I want make a 2-D cone which shows the area in which sensors see. I will have an angle and radius for the cone. I've tried searching but mostly 3-D cones have been discussed here in previous questions. How the cone should look

Any guidance is appreciated

like image 655
Arslan Aslam Avatar asked Jan 25 '26 08:01

Arslan Aslam


1 Answers

You would use matplotlib.patches.Wedge such as this example. Another example that I've reduced to the more relevant bits is:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.collections import PatchCollection
import numpy as np

fig, ax = plt.subplots()

patches = []

wedge = mpatches.Wedge((.5, .5), 0.5, 30, 270, ec="none")
patches.append(wedge)

colors = np.linspace(0, 1, len(patches))
collection = PatchCollection(patches, cmap=plt.cm.hsv, alpha=0.3)
collection.set_array(np.array(colors))
ax.add_collection(collection)

plt.show()

Which produces something like:

Wedge plot

Obviously you will need to tweak the theta1 and theta2 from their 30 and 270 to fit whatever angle you are trying to represent, and move the origin to wherever the sensors are located. Additionally you may want to color them all the same, instead of a rainbow but I'll let you figure out the details XD

like image 83
Reedinationer Avatar answered Jan 27 '26 21:01

Reedinationer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!