2014-11-01 36 views
0

我想測試一個圓是否與正方形相交。我已經想出瞭如何做到這一點的最好方法是找出是否存在一個x,使得:x在平方的最小和最大x值之間;將等式轉換爲C++

abs(x-centerOfCircle) <= radiusOfCircle 

問題是我無法弄清楚如何將其轉換成代碼,任何人都可以幫忙嗎?

+0

@ 0x499602D2他的問題是如何讓'x',因爲他需要找出是否有任何'x'適合方程。 – Barmar 2014-11-01 00:38:23

+1

你不通過測試是否有任何這樣的'x'。你可以用一個與方形角的座標一起工作的算法來實現。我不知道算法,但我相信你可以通過Google搜索找到它。 – Barmar 2014-11-01 00:41:58

回答

3

我會將您的問題轉換爲檢測圓的中心是否在內圓角方塊內,圓角方塊按您的圓的半徑定義爲原始方塊的輪廓。

然後相交測試是相當微不足道做以下簡單子測試:

  • 是圓中心內的任何4圓(在sqare的角部)?
  • 是綠色的矩形內圓心
  • 裏面是藍色的矩形圓心

如果上述任何3次測試爲真,你的圈子相交的正方形。

enter image description here