2014-09-19 123 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