我目前正在研究幾何引擎(我希望在其中構建一個物理和遊戲引擎)......並且它有一個問題。當我旋轉一個矩形時,比如說一個正方形,它首先將它變成一個菱形,然後幾乎看不見,然後回到正方形。旋轉正方形導致拉伸
for(int i = 0; i < fv.length; i++) {
double[] ve = fv[i];
ve[0] = ve[0] - getCMX();
ve[1] = ve[1] - getCMY();
double sin = Math.sin(getRot());
double cos = Math.cos(getRot());
ve[0] = ((cos * ve[0]) - (sin * ve[1]));
ve[1] = ((-sin * ve[0]) + (cos * ve[1]));
ve[0] = ve[0] + getCMX();
ve[1] = ve[1] + getCMY();
fv[i] = ve;
}
fv是2D雙數組。 getCMX/CMY獲取正方形的中心。
任何想法都讚賞,我的目標是讓廣場保持同一區域,而旋轉...?
嗨。要求人們發現代碼中的錯誤並不是特別有效。您應該使用調試器(或者添加打印語句)來分析問題,追蹤程序的進度,並將其與預期發生的情況進行比較。只要兩者發生分歧,那麼你就發現了你的問題。 (然後,如果有必要,你應該構建一個[最小測試用例](http://sscce.org)。) –
是的,這是一個數學而不是代碼問題(在我看來)。作爲一個自學幾何的人,我不確定期望什麼,但是我認爲我得到的結果是不正確的。 – user2507230