2016-12-31 45 views
1

enter image description here如何找到一些給定的信息

矩形的拐角座標我知道的紅點和矩形的中心點座標,我也知道寬度和矩形(二維世界)的長度。

那麼我如何找到X點(左下角)的座標?

+3

圖中的矩形看起來與軸線對齊。是嗎? –

+0

@Nico Schertler沒有它沒有。 – GarretLR

+0

您可以使用raycast嗎? – Everts

回答

1

讓我總結一下你的問題,以確保我們在同一頁面上。你有一個具有已知中心,寬度和高度的任意矩形。而且你知道左邊和底邊有兩個任意點。

如果你有兩條邊的中點,這個問題很容易:

BottomLeft = CenterBottom + (CenterLeft - Center) 

所以,問題是如何計算這些點。

我會解釋這一個邊緣(在這種情況下,底部邊緣)。左邊緣也是一樣。我們稱之爲長方形C的中心,邊緣M的中點以及邊緣E上的任意點。

可以計算CE之間的距離。如果E是中點,則該距離將恰好是矩形高度的一半。但事實並非如此。我們可以用這些信息做的是計算角度MCE

cos MCE = h/(2 * |C - E|) 

因此,所有我們需要做的找M是此角度和再大規模旋轉方向向量:

M = C + rotate(E - C, MCE) * h/(2 * |C - E|) 

有這是兩個解決方案。正角度和負角度。

所以只需計算兩個邊緣的兩個可能的中點。如果你有這些,你需要檢查四對中的哪一對是有效的。爲此,只需檢查C - MLeftC - MBottom之間的角度是否爲90°(即它們的點積接近於零)。

一旦你有一對有效的對,你可以像上面描述的那樣計算拐角。請注意,可能有多個有效的解決方案。

相關問題