绘制一个具有均匀分布的点数的圆

Drawing a circle with an evenly-distributed set-amount of points

我想知道假设您正在使用以像素为单位的 2D 坐标系,您将如何处理这个问题。我创建了一些例子来说明我的意思:

有 3 个点: http://prntscr.com/5vbj86

有 8 个点: http://prntscr.com/5vbobd

上圈很容易

  • 对于均匀分布的点,角度以相同的步长增加
  • 所以对于 N 点,步骤是 da=2.0*M_PI/N;

C++中的代码是这样的:

int i,n=10;
double x,y,a,da;
double r=100.0,x0=250.0,y0=250.0; // circle definition
da=2.0*M_PI/double(n);
for (a=0.0,i=0;i<n;i++,a+=da)
 {
 x=x0+r*cos(a);
 y=y0+r*sin(a);
 // here draw or do something with (x,y) point
 }

Spektre 回答了我的问题,但在 C++ 中,它在 lua 中供任何感兴趣的人使用:

local x,y
local n = 10 
local r = 100.0 
local x0 = 250.0 
local y0 = 250.0
local da = 2.0 * math.pi/n

local a = 0.0

for i = 0, n - 1 do
    x = x0 + r * math.cos(a)
    y = y0 + r * math.sin(a)
    -- draw here using x,y
    a = a + da
end