[求助]对象平移怎么实现
先定义好了如下一个二值矩阵
[0 1 1 0 0 1 0 1
0 1 0 0 0 1 0 0
1 1 0 0 1 0 0 1
0 0 0 1 1 0 0 0
1 1 0 0 0 1 0 0
0 1 0 0 0 1 1 1
0 0 1 1 0 1 0 0]
定义值为1的上下左右邻接成对象。如黑体即为一个对象
怎么实现这样的对象向上下左右中任一方向移动一格呢?
是四邻域不是八领域么?
另外,楼主自己问题还没有考虑清楚,很多地方可能都没有想到,
上面提了一种,另外一种,如果在移动的过程中出现与其他对象重合怎么处理?
感觉这个问题还有点儿意思,但是估计被楼主抽象的时候有些失真了~
能否给出你该问题的来源与原始需求?
是四邻域
这个问题起源于薄膜生长的模拟
先是原子沉积过程,得到前面说的二值矩阵
(实际的矩阵应该是200*200,原子数为5000,用1表示;无原子处用0表示)
按四邻域邻接的原子组成团簇,团簇不能再分离。
每一时间步里,以团簇为单位随机移动一格(方向可为上下左右,也可以静止),各团簇同步移动,组成新的团簇----当然在程序实现时是不可能真正同步并行移动的,可以自己变通一下,比如说每个团簇移动后若与其他团簇邻接则立即组成新的团簇,该新团簇在这个时间步里不能再移动,这样也就消除了重合问题(只要保持原子数--即1的个数--不变,这些规则可以自己改)
----前面表述不清,在次表示歉意,希望这次能说得明白一些