2016-02-13 81 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的细节。这是您首先需要了解的算法。

我希望有帮助。