用户:
萌新大佬查看:0 回复:2 评论:0 创建时间:2023-05-01T15:17:36
相信大家都有过在地图上种树的经历
但是,你们的代码是不是这样的:
for(let i=1;i<254;i++){
for(let k=1;k<254;k++){
if(Math.random()>0.7)plant(i,39,k);
}
}

又或者是这样的:
for(let i=1;i<=500;i++){
plant(randint(1,253),39,randint(1,253));
}

不是森林密布,就是稀树喵原?是不是平平无奇?
但是如果我们想弄的有层次感一些
很容易想到以某一点为中心创建森林,而稀疏程度则与距离中心点的位置成反比
经过亿些调整后,我们得到了代码:
function plants(){
let pos1=new Box3Vector3(randint(50,127),39,randint(50,203)),pos2=new Box3Vector3(randint(127,203),39,randint(50,203));
for(let i=1;i<254;i++){
for(let k=1;k<254;k++){
let pos=new Box3Vector3(i,39,k);
if(Math.random()**0.75<3/Math.min(pos.distance(pos1),pos.distance(pos2)))plant(i,39,k);
}
}
}
然后就大功告成啦
