2014-09-19 124 views
1

我的問題可能更多的是關於數學而不是編程,但我希望這不是問題。 在我的應用程序中,我正在計算一些運動路徑,由像素座標組成(只計算,不顯示它們)。我現在試圖平滑轉彎,現在這個轉彎太尖銳了,所以我想在這裏使用一些弧線。我發現我怎麼可能確切的弧線,我需要,使用這樣的代碼:計算弧的座標

e.Graphics.DrawArc(myPen, myPoint.X, myPoints.Y, 50, 50, 180, 90); 

基本上我知道有三個點(弧將是其中的兩個之間,第三個是現在是反過來的角落) ,圓弧的高度和寬度,初始和想要的航向/航向/角度。我在一個應用程序中嘗試了這一點,以後可以看到路徑,並且它可以工作。但是,我需要計算弧上的一些座標,以添加到保存爲路徑的點數組中。任何人都知道?我需要大約5個點作爲這個尺寸的圓弧(點的數量會改變) 謝謝

+0

http://stackoverflow.com/questions/674225/calculating-point-on-a-circles-circumference-from-angle-in-c,http://stackoverflow.com/questions/839899/how-do -i-calculate-a-point-on-a-circle-s-circumference,http://stackoverflow.com/questions/5300938/calculating-the-position-of-points-in-a-circle – CodeCaster 2014-09-19 13:42:04

回答

1

DrawArc在你的案例中繪製一個橢圓或圓的一部分(關於第4和第5個參數)。你的圓的半徑是25.圓的數學是:x^2 + y^2 = r^2。 因此,我認爲你可以通過計算計算這個圓點:從myPoint.XmyPoint.X + 50

Y = myPoint.Y + 25 +/- Sqrt(625 - (X - myPoint.X - 25)^2). 

設X運行,你會發現一些相應的Y的。 因爲它是一個圓,每個X有2個Y值(因此,公式中的+/-;您需要計算+和 - )。

+0

說明我編輯過代碼格式化後的可讀性。請參閱http://stackoverflow.com/help/formatting尋求幫助 – ja72 2014-09-19 14:08:30