我想这是一个简单的问题,但我当前的代码得到了一些奇怪的结果,而且我没有数学背景来完全理解原因。我的目标很简单,如标题所示:我只想找到距中心点一定距离和角度的点。
我当前的代码:
Point centerPoint = new Point ( 0, 0 );
Point result = new Point ( 0, 0 );
double angle = 0.5; //between 0 and 2 * PI, angle is in radians
int distance = 1000;
result.Y = centerPoint.Y + (int)Math.Round( distance * Math.Sin( angle ) );
result.X = centerPoint.X + (int)Math.Round( distance * Math.Cos( angle ) );
一般来说,这似乎工作得相当合理,但我在不同的地方遇到了问题,最明显的是当角度对应于负 x 轴和 y 轴上的点时。显然我做错了什么——你想知道那是什么吗?
更新:这是我的错误,这段代码工作正常——少数不工作的异常值实际上是由于 1.5PI 的角度计算方式中的错误造成的。我以为我已经检查得足够清楚了,但显然还没有。感谢大家抽出时间,希望上面的工作代码对其他人有帮助。
您忘记添加中心点:
result.Y = (int)Math.Round( centerPoint.Y + distance * Math.Sin( angle ) );
result.X = (int)Math.Round( centerPoint.X + distance * Math.Cos( angle ) );
其余的应该没问题......(你得到了什么奇怪的结果?你能给出准确的输入吗?)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)