用户:
YDS尹子查看:553 回复:21 评论:16 创建时间:2020-07-02T20:54:42
先上图:
可能略微有些不圆。。不过我尽力了
下面是代码。
注意事项:
blockN是方块名
radius是半径
start是圆心位置
var blockN="water";
var radius=15;
var start={x:喵,y:30,z:喵};
function circle(block,y,rad){
for(let radius=1;radius<=rad;radius++){
for(let angle=0;angle<360;angle++){
var x=Math.round(Math.sin(Math.PI/180*angle)*radius+start.x);
var z=Math.round(Math.cos(Math.PI/180*angle)*radius+start.z);
voxels.setVoxel(x,y,z,blockN);
}
}
voxels.setVoxel(start.x,start.y,start.z,rad);
}
function ball(radiusNum,blockName){
for(let ang=0;ang<=90;ang++){
var radi=Math.round(Math.cos(Math.PI/180*ang)*radiusNum);//把球切片
var slice=Math.round(Math.sin(Math.PI/180*ang)*radiusNum);
circle(blockName,start.y+slice,radi);
circle(blockName,start.y-slice,radi);
}
}
ball(radius,start.y,blockN);
copyright© YDS尹子,All rights reserved.
代码使用愉快!
BSS梅者如西这个代码应该是用了math对象(群众:这不是废话么)
点赞0
评论
Math.sin()和Math.cos()(俗称三角函数)
我知道,我的JS书上有
还有Math.asin()和Math.acos()
面具狐狸云绾兮尹子发出来的代码是不能在调试台用的,我给改了一下,其实就是注释删掉就可以了
var blockN="water";
var radius=15;
var start={x:喵,y:30,z:喵};
function circle(block,y,rad){
for(let radius=1;radius<=rad;radius++){
for(let angle=0;angle<360;angle++){
var x=Math.round(Math.sin(Math.PI/180*angle)*radius+start.x);
var z=Math.round(Math.cos(Math.PI/180*angle)*radius+start.z);
voxels.setVoxel(x,y,z,blockN);
}
}
voxels.setVoxel(start.x,start.y,start.z,rad);
}
function ball(radiusNum,blockName){
for(let ang=0;ang<=90;ang++){
var radi=Math.round(Math.cos(Math.PI/180*ang)*radiusNum);
var slice=Math.round(Math.sin(Math.PI/180*ang)*radiusNum);
circle(blockName,start.y+slice,radi);
circle(blockName,start.y-slice,radi);
}
}
ball(radius,start.y,blockN);点赞0
评论
尹子还不置顶???
你就去掉个注释,有本事把空心圆柱的代码写出来
我试试哈
本尊我已经写了,在平面⚪那一个帖子
嗯。。