我有一个任务来绘制一个特定的图形。作为这项任务的一部分,我需要旋转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的贡献者必须手工复制它,因为括号被搞砸了,并且在单元测试中出错了。 –