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

时间:2015-01-21 19:31:23

标签: lua geometry 2d

我想知道如果你正在使用像素的2D坐标框架,你会怎么做。我创建了一些我的意思的例子:

  • 红点代表原点
  • 灰色圆圈显示半径但实际上不会被绘制
  • 绿点有一定量,并沿着平均分布 圆

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

圈子上的

很容易

  • 对于均匀分布的点,角度随着步骤的增加而增加
  • 因此,对于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
 }