簡體   English   中英

如何在python(matplotlib)中繪制二維錐體?

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

我對python很新,並制作了一個房間的地圖。 我繪制了房間,障礙物和一些點(傳感器)。 現在我想制作一個二維錐體,顯示傳感器看到的區域。 我將為錐體設置一個角度和半徑。 我已經嘗試過搜索,但在之前的問題中已經討論了大多數三維錐體。 錐體應該如何看

任何指導表示贊賞

您可以使用matplotlib.patches.Wedge,例如此示例 我已經減少到更相關位的另一個例子是:

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()

產生的東西如下:

楔形圖

顯然,您需要從30270調整theta1theta2 ,以適合您嘗試表示的任何角度,並將原點移動到傳感器所在的位置。 另外你可能想要將它們全部着色,而不是彩虹,但我會讓你弄清楚細節XD

結束使用以下內容:

import matplotlib.pyplot as plt
from matplotlib.patches import Wedge

fig, ax = plt.subplots()
patches=[]
ax.axis('equal')
we = Wedge((2756.6747,5339751.8148),10,30,180,edgecolor='b',facecolor='none')
patches.append(we)

ax.add_artist(we)
ax.set(xlim=[2740, 2800], ylim=[5339740, 5339780])

plt.show()

感謝@reedinationer給出的指示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM