讓我開始說明,雖然我的問題是編程性質,但是卡住的部分有點數學問題。所以我不確定這是否是發佈它的正確位置,但我不確定其他位置。確定點是否在六邊形內的函數
我想要定義一些布爾函數,如果點(x,y)在某個形狀內,則返回true,否則返回false。要澄清的是,下面的代碼將工作定義內半徑r1和外徑r2的環(環):
def ring(pos):
(x, y) = pos
rsq = x ** 2 + y ** 2
return (r1 ** 2 < rsq < r2 ** 2)
我的問題是,如果有人可以幫我想出了一個巧妙的方法來定義這是一個六角形區域的函數。具體來說,我想定義一個邊長爲s(這是直徑的一半)的六角形區域,以原點爲中心。理想情況下,它也將被定向爲使得頂部和底部是側面,與x軸平行。
如果您在搜索引擎中輸入「point inside hexagon」,您會獲得大量示例。 (一種流行的方法是使用相同的算法來檢測一個點是否在任何凸多邊形內) – UnholySheep
你是完全正確的,出於某種原因,我逐漸淘汰了一點,沒有找到合適的搜索詞。我會研究那些 – user129412
@UnholySheep雖然這是一個非常特殊的情況,可能允許一個更簡單的解決方案。 –