使用分布均匀的固定点数绘制一个圆形

我在想,如果你使用像素的二维坐标系,你会如何处理这个问题。我创建了一些示例,以说明我的意思:

  • 红点表示原点
  • 灰色圆圈显示半径,但实际上不会被绘制
  • 绿点有一个设置的数量并均匀分布在圆上

三个点的情况: http://prntscr.com/5vbj86

八个点的情况: http://prntscr.com/5vbobd

点赞
用户2521214
用户2521214

在圆上非常容易

  • 对于均匀分布的点,角度会以相同的步长增加
  • 因此,对于 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; // 圆的定义
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);
 // 这里绘制或对 (x,y) 点进行操作
 }
2015-01-22 08:00:38
用户1826176
用户1826176

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)
    -- 在这里使用 x,y 进行绘制
    a = a + da
end
2015-01-22 11:11:26