2011-08-05 64 views
2

我正在尋找一種方法來獲取我知道的中心,正常,長度和高度的矩形的所有頂點。我數學有點弱,所以請幫助我。 編輯:飛機在3D空間。按中心,法線,長度和高度獲取矩形頂點

+0

「中心,法線,長度和高度」在3D中不夠用。假設我告訴你「原點,z軸,2個單位,1個單位」。現在*任意* 2乘1的矩形,以原點爲中心,並位於xy平面中,符合這些標準。 – AakashM

+0

類似的問題,除了它似乎OP只需要其中一方:http://stackoverflow.com/questions/6503871/convert-a-normal-rectangle-to-a-set-of-gles-vectors – user786653

回答

1

通過從中心點的x/y位置減去/增加一半寬度/高度,可以輕鬆計算出二維空間中矩形頂點的x和y座標。

如果你在3D空間中需要這個,這會變得更加棘手,並且依賴於三角幾何,但仍遵循相同的原理。你需要一個額外的信息。你需要某種方法來固定方向的方向,即哪個方向是矩形「面向」。法線將允許您計算出矩形所在的平面,但如果在該平面上沒有方向,則可以做的最好方法是爲每個頂點計算圍繞中心的一組圓的可能值。

+0

這將只有矩形軸對齊時纔有效,因爲OP提到「正常」,所以我不認爲這是這種情況。 – user786653

+0

@ user786653:是的,你說得對,我特別說上面的數學只適用於2格。要修正三維空間中的點,那麼你需要的不僅僅是正常的,還需要一些方法來固定方向,否則就無法確定任何點的位置,只是圍繞着一個圓的可能點的圓正常的飛機上的中心。 –

+0

我的意思是OP可能在尋找類似於(假設一個2d向量類)的東西:'topleft = center + normal * vec2(-width/2,0)+ vec2(-normal.y,normal.x) * vec2(-height/2,0)'雖然當然我不確定是什麼意思。 – user786653