将点放入java中使用的圆弧中

时间:2011-03-29 02:30:12

标签: java android algorithm graphics

我有我的数学问题:我已经知道了一个圆心和半径,并且有一些不确定的点数称为N,我的问题是如何将点放在圆弧上,我不能把点放在整个圆周上周长,其他链接:http://i.6.cn/cvbnm/2c/93/b8/05543abdd33b198146d473a43e1049e6.png 在这个链接中,你可以读取点是圆心,其他颜色是一些点,你可以在弧线周围看到这些点。

编辑 - 简而言之:我知道圆心和半径,所以我想在圆心周围生成一些点

2 个答案:

答案 0 :(得分:3)

我不确定,但是我用简单的Swing JComponent检查了这个并且似乎没问题。

Point center = new Point(100, 100); // circle center

int n = 5; // N
int r = 20; // radius
for (int i = 0; i < n; i++)
{
    double fi = 2*Math.PI*i/n;
    double x = r*Math.sin(fi + Math.PI) + center.getX();
    double y = r*Math.cos(fi + Math.PI) + center.getY();
    //g2.draw(new Line2D.Double(x, y, x, y));
}

答案 1 :(得分:2)

大多数的一般想法虽然相当简单。一个圆圈中有2 *个Pi弧度,所以一旦你确定了你想要整理你的点的圆圈的哪一部分,你将该百分比乘以2 * pi,并将该结果除以得到的点数。点之间的角度(以弧度表示)。

要从角度距离到位置,您可以获取角度的余弦和正弦值,并将每个角度乘以圆的半径,以获得该点相对于圆心的x和y坐标。为此,0弧度的角度直接从中心向右移动,角度从那里逆时针方向前进。