下载此文档

矩形点位自动排布算法研究.doc


文档分类:论文 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
矩形点位自动排布算法研究
王朋武 darlingpeng@ 20/12, 2011
在游戏软件中的人员与机关排布、在粮库粮食温度测量时的监测杆布置以及各种与点位排布有关的软件编程中,如何根据需要快速自动地计算出各点位的坐标,是一个很重要的问题。近段时间我对此进行了一番研究,以下仅对此进行简单地阐述,希望会对有关人员有所帮助。
假设排布方式为矩形。
对排布条件做如下分类:
第一点位置可能在:
西北角
东北角
西南角
东南角
排列方式分为:
层叠形
蛇形
排列方向有:
横排
竖排
横梅花
竖梅花
说明:
层叠形是指点位排列时,每一行或列的数字排列方式都一样,具有重复性,如下图例:
蛇形是指点位排列时,整个行或列的数字连线就象蛇一样具有连续性,如下图例:
梅花形是指点位排列时,行或列的点处在其上下左右行或列中间的空隙位置,每一点四周都均匀地排列着六个点,就象梅花一样。如下图例:
由于在计算过程中的浮点数到整数变换时造成的累积误差,所以添加可调整各点间距以及整体位移的上下左右四个方向控件,进行点位调整。
程序用Delphi 7编制。
程序不算复杂,在此我列出需要的主要程序源码,并把有关界面图拷屏贴出来,方便大家参考。
布点范围:500×500。
{*****************************************
作者:王朋武
时间:30/11, 2011
说明:重新排列点位
******************************************}
procedure (Sender: TObject);
var
i, j, m, n, k, x0, y0, x, y, p, q, r, w, t: Integer;
h, v: Integer;
str_name: String;
begin
if not then exit;

m := 5;
if <> '' then m := ;
if ( = ‘横梅花’) or ( = ‘竖梅花’) then
begin
i := 1;
k := 0;
while k <= do
begin
if i mod 2 = 1 then
k := k + m
else
k := k + m - 1;
i := i + 1;
end;
n := i - 1;
end else
n := ( / m);
if = ‘横梅花’ then
begin
t := m;
m := n;
n := t;
end;
k := m;
if n > m then k := n;
q := ((490 - 20 * k) / (k - 1)); //圆外轮廓间距
if q < 0 then q := 0;
if q = 0 then
begin //不可再增减
ii_h := 0;
ii_v := 0;
end;
p := 20 + q; //圆间距
h := p + ii_h;
v := p + ii_v;
if m > n then
begin
if = ‘西北角’ then
begin
x0 := ((490 - h * n + q) / 2) + ii_ho;
y0 := 5 - ((m-1) / 2) * ii_v - ii_ve;
end else if = ‘西南角’ then
begin
x0 := ((490 - h * n + q) / 2) + ii_ho;
y0 := 475 + ((m-1) / 2) * ii_v - ii_ve;
end else if = ‘东北角’ then
begin
x0 := ((490 + h * n - q) / 2) + ii_ho;
y0 := 5 - ((m-1) / 2) * ii_v -

矩形点位自动排布算法研究 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小201 KB
  • 时间2017-08-14