我有一個任務來繪製一個特定的圖形。作爲這項任務的一部分,我需要旋轉45度的點。圍繞另一點旋轉一個點
我已經花了2天試圖計算一個公式,但只是無法正確理解。 我一直在搜索遍地,包括這個特定的網站,我越來越接近,但我仍然不在那裏。
這就是: 我需要繪製4個不同的點
我有一個特定的公式來計算出現的位置,這是出了問題的範圍,但這裏是我得到的結果它:
int radius = 576;
int diameter = radius * 2;
Point blueA = new Point(561, 273);
Point greenB = new Point(273, 561);
Point yellowC = new Point (849, 561);
Point redD = new Point (561, 849);
現在我需要在45度旋轉,這點。我用下面的代碼來實現它:
double rotationAngle = 45;
double rotationRadians = rotationAngle * (Math.PI/180);
int center = radius;
result.X = (int)(Math.Cos(rotationRadians) * ((double)result.X - (double)center) - (double)Math.Sin(rotationRadians) * ((double)result.Y - center) + (double)center);
result.Y = (int)(Math.Sin(rotationRadians) * ((double)result.X - (double)center) + (double)Math.Cos(rotationRadians) * ((double)result.Y - center) + (double)center);
但是,這就是我得到:
任何幫助,將不勝感激
我剛發佈後就看到了這篇文章。這個公式起作用。 –
它是完美的!謝謝。 以下是當前屏幕截圖: http://s8.postimage.org/e7r44klcl/result.png –
你說得對。 OS lib的貢獻者必須手工複製它,因爲括號被搞砸了,並且在單元測試中出錯了。 –