查看: 19891|回复: 60

[已经解决] 求一个自动排版算法

  [复制链接]

八云紫的式神<

梦石
0
星屑
823
在线时间
1255 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2009-10-4 21:15:02 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
所谓自动排版,就是描绘一个界面,它的里面的内容不是固定的,而是放在一个变量里
为了说明方便,以下拿RM的界面来举例,事实上只要能获取到那些坐标就行,先不用考虑描绘

比如现在有这么一段数据
data={"名称" => [130,20] "图标" => [32,32], "说明"=>[276,20], "动画"=>[130,20], "售价" => [60,20], 命中率=>[60,20],"能力值变化" =>{"攻击力"=>[60,20],"防御力"=>[60,20],"精神力"=>[60,20],"敏捷性"=>[60,20]},"属性"=>[106,285]},"状态变化"=>[106,285],"备注"=>[228,218]}

range_width=524 #这个是总描绘区域的宽度,高度不限

嗯……就是求一段脚本或者思路,提交上面那种的数据,返回每个元件的xy值
无标题.png
如果,可能描绘的框框的长宽是固定的几种,而不是随意的,会不会简单一些
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
回帖
2406
发表于 2009-10-4 21:26:08 | 显示全部楼层
这个Hash的value是啥- -
From mortal hope immortal power springs.
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-10-4 23:22:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
823
在线时间
1255 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2009-10-5 06:46:26 | 显示全部楼层
hash的值是尺寸

单行的当然是没什么算法,按间距排起来就行了
不过像这种只是限定总宽度的多行并且不规则的排版- -完全想不到什么算法
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-9-22
回帖
61
发表于 2009-10-5 07:39:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
823
在线时间
1255 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2009-10-5 10:55:24 | 显示全部楼层
我是想做可变的界面
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

真实之终章

梦石
0
星屑
60
在线时间
48 小时
注册时间
2008-8-7
回帖
279
发表于 2009-10-5 11:19:01 | 显示全部楼层
先排第一行,无法完成一个系列则排第一列,完成一个系列后立即换行,或者排满后换到第二行,依次类推
玫瑰绽放,彼岸流殇。
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
823
在线时间
1255 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2009-10-5 11:25:05 | 显示全部楼层
没有固定的一行一行的,比如右侧那两个纵栏
用这个图也许更能说明问题
无标题.png
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
回帖
2437

贵宾

发表于 2009-10-5 11:34:19 | 显示全部楼层
本帖最后由 link006007 于 2009-10-5 11:43 编辑

习惯按tab键缩进了,,, 结果回帖了- -
还是说下吧 - -
这种排版有点向2D矩形的碰撞检测一样。。。
所有的矩形都停在不会与其他任何一个矩形接触的地方
白痴点的方法就是
这个就先要生成一个矩形序列。然后按行或列或者其他的方法顺序安放矩形,
然后下一个要安放的矩形和前面已经安放的矩形逐一进行碰撞检测。直到找到一个不会与前面矩形碰撞的地方
不知道是不是这个样子。。
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
823
在线时间
1255 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2009-10-5 11:50:55 | 显示全部楼层
这个就先要生成一个矩形序列。然后按行或列或者其他的方法顺序安放矩形
这一句不是很明白0.0
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部