有點棘手的問題,但我希望你能幫助我。 我收到了一個編碼任務,並且在解決方案中遇到了一些麻煩。Python中的一個區域的地圖座標
情況是這樣的:假設我有座標爲(X,Y)的武器;當它發生火災時,會發生聲音損害功能,影響靠近槍支的人員。我需要編寫一個函數,根據被解僱的口徑計算 - 在危險區域是否存在一個人(一個Person類的實例)。槍的聲音從45度角展開,其半徑根據被擊發的口徑而變化(但是由我預先確定,所以我們假設半徑等於5)。 我的解釋可能有點雜亂,所以我會盡量組織一點,以使事情更清楚:我需要編寫一個函數,每當槍被解僱時調用。該功能需要檢查一個人是否與被髮射的槍靠得很近,好像他會受到損害(通過單獨的預製功能)。傷害根據人與槍的相對距離而縮放。該區域以錐體形式測量,該錐體以隨機半徑以45度角展開槍的邊緣。
我對如何解決這個問題有點困惑。我已經寫了一個函數來計算每個「Person」的座標。但是我需要一種方法來繪製出影響區域的所有座標,以便我能夠:a)告訴人們是否應該受到聲音損傷函數的影響,並且b)告訴他受到的撞擊有多嚴重(因爲損壞會更嚴重如果他站在離槍只1米遠的地方而不是4米遠的話)。
也許我是以一種錯誤的方式接近問題 - 我想學習並樂於聽取任何建議。我不是任何方式的專家,並且希望能夠以最有效的方式解決這個問題。
編輯:我到目前爲止已經寫的代碼如下:
class Soldier(object):
def __init__(self):
# Soldier ID is a randomly generated string including of 3 numbers.
ID = str(int(random.random() * 1000))
self.ID = ID
# soldier's position is set by default to [0,0]
self.position = [0,0]
def getID(self):
# gets the ID number (string) of the instance
print (self.ID)
def setPosition(self, position):
# sets the position (a list) of the instance
self.position = position
def getPosition(self):
# gets the position (list) of the instance
print(self.position)
def randomize_soldier_position(soldiersList):
"""
Gets as input a list of instances of soldiers, and assigns a random location to each one of the instances.
"""
for i in soldiersList:
# for the values of X and Y we generate a random floating point number extending to 3 digits.
X = round((random.random() * 100), 3)
Y = round((random.random()* 100), 3)
# sets the [X,Y] values for each of the instances.
i.setPosition([X,Y])
print(i.position)
我沒碰過的實際功能我需要寫,因爲我不知道在哪裏甚至開始的代碼。 ..
在此先感謝! :)
提供您迄今爲止編寫的任何代碼,我們無法完全爲您完成您的代碼。 :) –
你能否列出一些你想要推斷的人物及其座標造成的傷害?與文本牆相比,那麼看到問題會更容易一些。 –
根據平方反比法則,聲音會減弱,這很容易編碼:https://en.wikipedia.org/wiki/Inverse-square_law#Sound_in_a_gas –