2011-04-07 92 views
0

我正在爲我的遊戲構建2D關卡編輯器,您可以處理兩種類型的圓形和多邊形幾何圖形。將變換矩陣應用於圓形

我得到它的工作,所以我可以將任何轉換矩陣應用到多邊形,頂點將正確轉換。我現在想着如何將變換矩陣應用於一個圓。

我的圓圈由中心位置和半徑定義。問題在於,因爲圓僅由一個點定義,所以矩陣縮放操作將導致圓正在被翻譯,而不是縮放。

我不確定這是否可行,但我的解決方案是在圓形變形時,將兩個臨時頂點放在相對兩側的圓形邊上,然後將變換應用到這些頂點,然後重新創建位置(兩個頂點之間的中點)和半徑(兩個頂點之間的距離除以2)。

是否有更好/更簡單的方法來轉換使用變換矩陣的圓?

回答

1

我會採取兩點:圓的中心和邊緣上的任何點。這樣,你已經擁有了新的中心,你只需要計算距離即可得到半徑。這就像你提出的,但稍微簡單一些。