有一个需求需要要生成地貌一样的随机地形图,首先我通过在固定大小的矩形面板上生成多个大小不一的矩形,然后赋予每个矩形随机的高度,然后再进行滤波得到想要的地形图。
先直接贴一段代码,看看是如何在面板上生成多个大小不一的矩形的。
t = 1;
rec_num = 10;
ah = 56;
x = 112 - 112*rand(1,1);
y = 112 - 112*rand(1,1);
w = rand(1)*(112-x)-1;
h = rand(1)*(112-y)-1;
b =[x y w h];
rectangle('Position', b)
a{t} =b;
flag =1;
while flag ==1
x = 112 - 112*rand(1,1);
y = 112 - 112*rand(1,1);
w = rand(1)*(112-x)-1;
h = rand(1)*(112-y)-1;
b =[x y w h];
num = 0;
for j = 1:t
if ~rectint(b,a{j})
num = num +1;
end
end
if num == t
hold on;
rectangle('Position', b)
t = t+1;
a{t} =b;
end
if t == rec_num
break
end
end
效果图如下
![这里写图片描述](https://img-blog.csdn.net/20180524154551505?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Zlbmd6aG9uZ2x1b2xlaWRlaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)