我想这是一个简单的问题,但是我当前的代码得到了一些奇怪的结果,而且我没有数学背景来完全理解为什么。正如标题中所述,我的目标很简单:我只想找到与中心点有一定距离和角度的点。
我当前的代码:
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 的角度存在错误。我以为我已经检查得足够好,但显然没有。感谢大家的时间,希望上面的工作代码对其他人有帮助。