滑轨屏尺寸计算器与方案模拟系统 - 博视锐科技
博视锐科技专业提供滑轨屏尺寸计算、轨道长度预算、功耗电费预估、展厅博物馆党建馆科技馆滑轨屏方案模拟系统,支持触摸滑轨屏、多联滑轨屏、互动滑轨屏、滑轨电视定制方案快速预估。
滑轨屏产品特色与参数
智能滑轨屏系统设计与安装方案、滑轨屏生产厂家
支持多联滑轨屏、触摸滑轨屏、滑轨一体机定制、互动滑轨屏
精确的轨道长度与屏幕尺寸动态计算、工程案例演示
实时的系统功耗与电费预估,降低运营成本
收起面板
EN
博视锐科技
滑轨屏模拟系统V3.0
返回主页
空间场景预设
现代办公
科技指挥
极简工业
雅致行政
背景墙文字
控制中心
闭合拼接状态
进度: 0%
异步旋转 (单侧)
同步平移 (单侧)
同步平移 (对开)
同步旋转 (对开)
开启自动巡检模式
物理参数配置
屏幕组数
-
+
横向模组
-
+
纵向模组
-
+
实时统计看板
单屏尺寸
--
模组总计
--
总显示面积
-- ㎡
理论峰值功耗
-- kW
素材载入中心
上传视频
上传图片
相机视距调整
24.50 M
博视锐科技版权所有 抄袭必究
1});const backVentMat=new THREE.MeshStandardMaterial({color:0x111111,map:ventTex,roughness:0.8,metalness:0.3});const bodyMats=[plainCabinetMat,plainCabinetMat,plainCabinetMat,plainCabinetMat,plainCabinetMat,backVentMat];const logoTex=createLogoTexture("博视锐科技");if(renderer)logoTex.anisotropy=Math.min(renderer.capabilities.getMaxAnisotropy(),16);const logoW=Math.min(w_body*0.7,1.2);const logoH=logoW*(256/1024);const logoMat=new THREE.MeshBasicMaterial({map:logoTex,transparent:true,depthWrite:false});for(let i=0;i
{const screenAssembly=s.getObjectByName('screenAssembly');if(screenAssembly){const faceMesh=screenAssembly.getObjectByName('screenFace');if(faceMesh){const sub=tex.clone();sub.repeat.set((1/numS)*uvScale,1);sub.offset.set((s.userData.index/numS)-(padding/totalW)*0.5+0.00025,0);applyTextureSettings(sub,true);sub.needsUpdate=true;faceMesh.material.map=sub;faceMesh.material.emissiveMap=sub;faceMesh.material.needsUpdate=true;}}});updateUIFeedback();} function setupUploadListeners(){const vIn=document.getElementById('video-upload');if(vIn)vIn.onchange=(e)=>{const f=e.target.files[0];if(f){if(_0xcVE){_0xcVE.pause();_0xcVE.src="";}const v=document.createElement('video');v.src=URL.createObjectURL(f);v.muted=v.loop=v.playsInline=true;_0xcVE=v;v.play().then(()=>updateAllScreens(new THREE.VideoTexture(v)));}};const iIn=document.getElementById('img-upload');if(iIn)iIn.onchange=(e)=>{const f=e.target.files[0];if(f){if(_0xcVE){_0xcVE.pause();_0xcVE.src="";_0xcVE=null;}new THREE.TextureLoader().load(URL.createObjectURL(f),updateAllScreens);}};const zoomSlider=document.getElementById('zoom-range');if(zoomSlider){zoomSlider.addEventListener('input',(e)=>{const val=parseFloat(e.target.value);camera.position.z=val;document.getElementById('zoom-hint').innerText=val.toFixed(2)+" M";});}} window.addEventListener('DOMContentLoaded',()=>{init();}); function init(){scene=new THREE.Scene();scene.background=new THREE.Color(0xf0f2f5);camera=new THREE.PerspectiveCamera(40,window.innerWidth/window.innerHeight,0.1,2000);camera.position.set(0,2.0,24.5);renderer=new THREE.WebGLRenderer({antialias:true,logarithmicDepthBuffer:true});renderer.setSize(window.innerWidth,window.innerHeight);renderer.setPixelRatio(Math.min(window.devicePixelRatio,2));renderer.outputEncoding=THREE.sRGBEncoding;document.body.appendChild(renderer.domElement);scene.add(new THREE.AmbientLight(0xffffff,0.6));const sun=new THREE.DirectionalLight(0xffffff,0.85);sun.position.set(20,60,40);scene.add(sun);scene.add(new THREE.HemisphereLight(0xffffff,0x444444,0.4));applyConfig();setupUploadListeners();window.addEventListener('resize',()=>{camera.aspect=window.innerWidth/window.innerHeight;camera.updateProjectionMatrix();renderer.setSize(window.innerWidth,window.innerHeight);});if(_0xaDA){_0xaDD=1;setTarget(100);}animate();} function animate(){requestAnimationFrame(animate);if(_0xaDA&&Math.abs(_0xcPg-_0xtPg)<0.001){_0xaWT++;if(_0xaWT>300){_0xaWT=0;if(_0xaDD===1){_0xaDD=0;setTarget(0);}else{_0xaDD=1;_0xaMd=['\x73\x6c\x69\x64\x65','\x72\x6f\x74\x61\x74\x65','\x73\x65\x71\x75\x65\x6e\x74\x69\x61\x6c','\x73\x6c\x69\x64\x65\x53\x69\x6e\x67\x6c\x65'][Math.floor(Math.random()*4)];setTarget(100);}}}if(Math.abs(_0xcPg-_0xtPg)>0.0001){const baseStep=(_0xaMd==='\x73\x65\x71\x75\x65\x6e\x74\x69\x61\x6c')?SEQUENTIAL_STEP:DEFAULT_STEP;let globalSoftMultiplier=(_0xcPg<0.15&&_0xtPg===0)?THREE.MathUtils.lerp(0.04,1.0,_0xcPg/0.15):1.0;const dir=(_0xtPg>_0xcPg)?1:-1;_0xcPg+=baseStep*dir*globalSoftMultiplier;if(dir===1&&_0xcPg>_0xtPg)_0xcPg=_0xtPg;if(dir===-1&&_0xcPg<_0xtPg)_0xcPg=_0xtPg;updateUIFeedback();}screens.forEach(s=>{const{baseX,targetX_Dual_Slide,targetX_Dual_Rotate,targetX_Single_Rotate,targetX_Single_Slide,index,total,targetZ}=s.userData;let finalLocalProg=0,finalTargetX=0,useRotation=false;if(_0xaMd==='\x73\x65\x71\x75\x65\x6e\x74\x69\x61\x6c'){const windowSize=1.0/total;let rawProg=(_0xcPg-index*windowSize)/windowSize;rawProg=Math.max(0,Math.min(1.0,rawProg));finalLocalProg=rawProg<0.5?2*rawProg*rawProg:1-Math.pow(-2*rawProg+2,2)/2;finalTargetX=targetX_Single_Rotate;useRotation=true;}else{const rawProg=_0xcPg;finalLocalProg=rawProg<0.5?2*rawProg*rawProg:1-Math.pow(-2*rawProg+2,2)/2;if(_0xaMd==='\x73\x6c\x69\x64\x65\x53\x69\x6e\x67\x6c\x65'){finalTargetX=targetX_Single_Slide;useRotation=false;}else if(_0xaMd==='\x73\x6c\x69\x64\x65'){finalTargetX=targetX_Dual_Slide;useRotation=false;}else{finalTargetX=targetX_Dual_Rotate;useRotation=true;}}s.position.x=THREE.MathUtils.lerp(baseX,finalTargetX,finalLocalProg);s.position.z=targetZ;const screenAssembly=s.getObjectByName('screenAssembly');if(screenAssembly){if(useRotation)screenAssembly.rotation.y=THREE.MathUtils.lerp(0,Math.PI/2,Math.min(1.0,finalLocalProg/0.22));else screenAssembly.rotation.y=THREE.MathUtils.lerp(screenAssembly.rotation.y,0,0.1);}});renderer.render(scene,camera);} let isD=false,lastM={x:0,y:0};document.addEventListener('mousedown',(e)=>{if(!e.target.closest('#sidePanel')){isD=true;lastM={x:e.clientX,y:e.clientY};}});document.addEventListener('mouseup',()=>isD=false);document.addEventListener('mousemove',(e)=>{if(!isD)return;const dx=e.clientX-lastM.x,dy=e.clientY-lastM.y;if(e.buttons===1){const limit=85*(Math.PI/180);scene.rotation.y=Math.max(-limit,Math.min(limit,scene.rotation.y+dx*0.0015));scene.rotation.x=Math.max(-Math.PI/15,Math.min(Math.PI/15,scene.rotation.x+dy*0.0015));}lastM={x:e.clientX,y:e.clientY};}); document.addEventListener('wheel',(e)=>{if(e.target.closest('#sidePanel'))return;camera.position.z=Math.max(5,Math.min(camera.position.z+e.deltaY*0.05,45));const zoomSlider=document.getElementById('zoom-range');if(zoomSlider){zoomSlider.value=camera.position.z;document.getElementById('zoom-hint').innerText=camera.position.z.toFixed(2)+" M";}},{passive:true}); document.oncontextmenu=e=>e.preventDefault();