计算一个圆圈中的交替点

问题描述 投票:0回答:1

我可以使用一些帮助为一个切成圆的点创建一些点,我的脑袋全都弄清楚了,只是想不出来。

我想为游戏ai创建一个“视场”圆,并希望以一种覆盖大约Pi * 1.75区域的交替模式创建这些点。

crudely drawn illustration

c# algorithm math geometry trigonometry
1个回答
0
投票

要产生替代光线,您可以使用奇偶校验。伪代码

n = 11
for (i = 1; i <= n; i++) {
int j = i / 2
float angle = - j * Pi * 7 / 4 / n
if (i & 1) 
  angle = - angle
line end:
  X = CX + R * Cos(angle - Pi/2))
  Y = CY + R * Sin(angle - Pi/2))

用于演示的Delphi工作代码:

enter image description here

var
  n, i, X, Y: Integer;
  a: Double;
begin
  n := 11;
  for i := 1 to n do begin
    Canvas.MoveTo(200, 200);
    a := (i div 2)* Pi * 7 / 4 / n;
    if (i and 1 = 0) then
      a := - a;
    X := 200 + Round(100 * Cos(a - Pi/2));
    Y := 200 + Round(100 * Sin(a - Pi/2));
    Canvas.LineTo(X, Y);
    Canvas.TextOut(X, Y, i.ToString);
  end;
© www.soinside.com 2019 - 2024. All rights reserved.