猫史档案馆


【教程】种树

用户:萌新大佬萌新大佬查看: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);
    }
}

center_image

又或者是这样的:

for(let i=1;i<=500;i++){
    plant(randint(1,253),39,randint(1,253));
}

center_image

不是森林密布,就是稀树喵原?是不是平平无奇?

但是如果我们想弄的有层次感一些

很容易想到以某一点为中心创建森林,而稀疏程度则与距离中心点的位置成反比

经过亿些调整后,我们得到了代码:

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);
        }
    }
}

然后就大功告成啦

center_image


回复

上一页1 页 / 共 1下一页
爱摸鱼的屑胡桃爱摸鱼的屑胡桃

沙发

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

我宁愿相信这是真菌繁衍()

点赞0


评论