Lua 绘制具有均匀分布的设定点数的圆
我想知道如果你使用的是以像素为单位的二维坐标系,你会怎么做。我创建了一些例子来说明我的意思:Lua 绘制具有均匀分布的设定点数的圆,lua,geometry,2d,Lua,Geometry,2d,我想知道如果你使用的是以像素为单位的二维坐标系,你会怎么做。我创建了一些例子来说明我的意思: 红点代表原点 灰色圆圈显示半径,但实际上不会绘制 绿点有一个固定的数量,并沿方向均匀分布 圈 有3个点: 有8个点: 在圆上非常容易 对于均匀分布的点,角度将以相同的步长增加 因此,对于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; // circ
- 红点代表原点
- 灰色圆圈显示半径,但实际上不会绘制
- 绿点有一个固定的数量,并沿方向均匀分布 圈
- 对于均匀分布的点,角度将以相同的步长增加
- 因此,对于
点,步长为N
da=2.0*M_PI/N代码>
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
}
inti,n=10;
双x,y,a,da;
双r=100.0,x0=250.0,y0=250.0;//圆定义
da=2.0*M_π/双(n);
对于圆上的(a=0.0,i=0;i非常容易
- 对于均匀分布的点,角度将以相同的步长增加
- 因此,对于
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
}
inti,n=10;
双x,y,a,da;
双r=100.0,x0=250.0,y0=250.0;//圆定义
da=2.0*M_π/双(n);
对于(a=0,i=0;i Spkrte回答了我的问题,但是在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
SkktRe回答了我的问题,但是在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
第二张图片是8个点…谢谢,更正了错误第二张图片是8个点…谢谢,更正了错误