目前我有一个生成点网格的算法。 它需要用户以x长( lx
)和y长( ly
)和什么递增( code> 和 dy
) 或三角洲( < code> 和 < code> /code > )的形式输入点。 我需要在 < strong > aways start and finish > by lx
和
定义的捆绑方形边缘 输入。 我尝试了几种方法 :
边框方形的起始边缘定义为:
double startx = lx / -2.0, starty = ly / -2.0;
我的第一种方法决定点数和轮数:
int numintervalx = round(lx / dx), numintervaly = round(ly / dy);
我的第二种方法确定点数,使用最接近的整数大于点数:
int numintervalx = ceil(lx / dx), numintervaly = ceil(ly / dy);
我的第三个方法确定点数,使用最接近的整数,小于点数:
int numintervalx = floor(lx / dx), numintervaly = floor(ly / dy);
然后对三角洲进行重新计算,以适应捆绑盒:
dx = lx / double(numintervalx);
dy = ly / double(numintervaly);
然后将其输入 < / code> 环的 < code>, 以生成点本身 :
for (int i = 0; i <= numintervaly; i++)
for (int j = 0; j <= numintervalx; j++)
{
double point[3] = {startx + dx * j, starty + dy * i, 0};
}
是否有另一种更准确的方法能让实际网格更接近用户指定的网格,