3D圆柱图形的制作

这篇博客介绍了如何利用JavaScript和CSS3创建3D圆柱图形。通过计算每个li元素在3D空间中的坐标(x=r*sinφ, y=h, z=r*cosφ),并结合3D变换实现圆柱体的旋转效果。博客内容包括设置圆柱的半径、高度、角度,并详细解释了代码实现过程。" 136737520,7337247,AI大语言模型性能优化技术解析,"['人工智能', '语言模型', '大模型', '计算优化', '深度学习']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3d圆柱图形的坐标:

x=r*sinφ

     y=h

     z=r*cosφ

圆柱的半径为  r(已知),只有高度h在变化,φ=2π/每层字的个数. 特点:每层字的个数都一样

/*js代码*/

window.οnlοad=function(){

var oScene=document.getElementById("scene");
var oBox=document.getElementById("box");
var oUl=oBox.getElementsByClassName("ring")[0];
var aLi=oUl.getElementsByTagName("li");

//3D圆柱旋转图形,只有高度在变化,并且没有theta角,只有phi角
var columnPhi=0;
var columnIndex=0;
var layerLi=Math.floor(numConeLi/(temp.length-2)); //平均每层的li的数量,在圆柱上每层li的数量是固定的
var sumLi=layerLi*(temp.length-2); //整个圆柱上li的数量

for(var i=0;i<temp.length-1;i++){
columnPhi=2*Math.PI/layerLi;
for(j=0;j<layerLi;j++){
fnColumn(aLi[columnIndex],columnPhi,i,j);
columnIndex++;
}
}
//把多余的li隐藏
for(var i=0;i<aLi.length;i++){
aLi[i].style.display="none";
}
//确定li在圆柱上的位置
for(var i=0;i<sumLi;i++){
//不多余的现实
aLi[i].style.display="block";
aLi[i].style.transform='translate3D('+aLi[i].columnX+'px,'+aLi[i].columnY+'px,'+aLi[i].columnZ+'px) rotateY('+aLi[i].degPhi+'rad)';
}

function fnColumn(obj,phi,i,j){
//加8*i*Math.PI/180,是为了让每一层的第一个文字有一个8度的偏转(同一层的文字的偏转角度一样)
obj.columnX=r/1.5*Math.sin(phi*j+8*i*Math.PI/180)+200;
obj.columnY=(2*r/(temp.length-2))*i+50;
obj.columnZ=r/1.5*Math.cos(phi*j+8*i*Math.PI/180);
obj.degPhi=phi*j+8*i*Math.PI/180;
};

};






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值