2016-02-13 61 views
-1

我是相當新的功能範式所以這裏是我的問題功能找到形狀重疊在二郎山

我有一個計算一個圓,其工作的長方形的周長的函數,在這裏它是

perim({circle, {X,Y}, R}) -> 
math:pi()*(R * 2); 
perim({rectangle, {X,Y}, H, W})-> 
    (H + W) * 2. 

現在我的問題是如何定義一個函數來測試兩個形狀是否重疊。說了他們可以是2個圓圈重疊或2個矩形或一個圓形和一個矩形。我從Erlang文檔得到的唯一提示是使用abs()函數。

任何幫助非常感謝

回答

4

這個問題是不是很相關的二郎。這是一個數學問題。你需要做一些家庭作業,挖掘數學公式,然後設計算法,然後你可以回來,我們將幫助你在Erlang中實現算法。

這裏有一些資源,讓你開始:

一些some useful links論壇,especially the Geometry 2D食譜。有一些相關的SO問題,比如這個關於PathGeometry的問題,或者這個關於overlapping rectangles的問題。

我也建議轉發Stack Exchange的數學部分https://math.stackexchange.com/的問題,只是略過關於Erlang的細節。這是您首先需要了解的算法。

我希望有幫助。