我目前正在开发一个WinForms应用程序,它在某个时候需要绘制一些东西。基本上,它必须画一个未知数目的圆圈(F.E3,5,10)在一个圆形的组织形式。就像这样:

我知道看起来糟透了。所以我想要定义一个圆心和一个半径。然后,我只需要从大圆的顶部画一个小圆圈,每x度画一个小圆(就像3个圆圈,它是120度,4个圆圈,90度等等)。
我在这里的问题是:有没有一个算法,可以给我画一个圆的中心点?就像我用f.e中心X = 50, Y = 50和半径R = 10来定义我的大圆。然后我在顶部画一个圆,决定画下一个离第一个120度远的地方,我只需要一个点(X,Y),它在大圆上?
发布于 2018-10-10 16:33:59
基本上,你只需要一些数学,就可以计算出圆周末端角落在哪里的坐标(圆心半径的距离)。下面是这种情况的psuedocode。
var center = new Point(0,0);
var radius = 5;
var degrees = 83;
var angle = Math.PI * degrees / 180;
var xPos = center.X + (radius * Math.cos(angle));
var yPos = center.Y + (radius * Math.sin(angle));
var newPosition = new Point(xPos,yPos);在这里,newPosition成为圆圈的中心点,你将沿着你想象的圆圈画。至于收集角度,只需使用360 / count * index。
https://stackoverflow.com/questions/52744600
复制相似问题