管道流向监测
可对工厂的管道(输气管道、输水管道、输油管道等)流向进行实时监控,根据流向、流速对管道进行三维模拟,从而达到可视化监测监控及模拟演练效果。
使用THREE.TubeGeometry对象构造管道模型
//创建管道
function createShape(id,color,position,flowto){
var Vector3_Arry =[]
for(var i=0;i<position.length;i++){
Vector3_Arry.push(new THREE.Vector3(position[i].x, 10, position[i].y));
}
var curve = new THREE.CatmullRomCurve3(Vector3_Arry);
var tubeGeometry = new THREE.TubeGeometry(curve, 50, 3, 50, false);
var textureLoader = new THREE.TextureLoader();
var texture = textureLoader.load(createShapeColor(color));
// 设置阵列模式为 RepeatWrapping
texture.wrapS = THREE.RepeatWrapping
texture.wrapT=THREE.RepeatWrapping
// 设置x方向的偏移(沿着管道路径方向),y方向默认1
//texture.repeat.x = 20;
var shapeLength = getShapeLength(position);
flowto = flowto || ‘+’;
texture.repeat.set(shapeLength/75, 1);
var tubeMaterial = new THREE.MeshPhongMaterial({
map: texture,
transparent: true,
});
var tubeMesh = new THREE.Mesh(tubeGeometry, tubeMaterial);
tubeMesh.flowto = flowto;
scene.add(tubeMesh);
}
设备实时数据
点击设备可以查看实时数据和运行状态,在三维场景中实时体现状态和值,根据设备不同阈值模拟设备报警。
使用canvas绘制弹窗
function createNoteCanvas(id){
var title =“居民负荷”;
var data = [
{name: “A相电压”, value: “10040863.2”},
{name: “B相电压”, value: “-8086002”},
];
var canvas = document.createElement(“canvas”);
var ctx=canvas.getContext(‘2d’);
canvas.width=550;
canvas.height=data.length*14+30;
canvas.style.border=“1px solid #ccc”;
ctx.fillStyle=“#0C4657”;
strokeRoundRect(ctx,0,0,canvas.width,canvas.height,4.5);
fillRoundRect(ctx,1,1,canvas.width-2,canvas.height-2,5);
var rectH=6;
var rectW=20;
var titleH=12;
ctx.scale(2,2)
ctx.lineWidth = 1;
ctx.strokeStyle = “#ccc”;
ctx.textAlign = “center”;
ctx.fillStyle = “#FFFFFF”;
ctx.fillText(title,32,titleH);
titleH += 14;
ctx.font=“5pt Arial”;
for(var i= 0;i<data.length;i++){
ctx.fillStyle = “#FFFFFF”;
ctx.textAlign=“right”;
ctx.fillText(data[i].name+“:”,60,rectH*i+titleH);
ctx.fillStyle = data[i].color != undefined?data[i].color:“#FFFFFF”;
ctx.textAlign=“left”;
ctx.fillText(data[i].value,60,rectH*i+titleH);
if((i+1)<data.length){
ctx.fillStyle = “#FFFFFF”;
ctx.textAlign=“right”;
ctx.fillText(data[i+1].name+“:”,200,rectH*i+titleH);
ctx.fillStyle = data[i+1].color != undefined?data[i+1].color:“#FFFFFF”;
ctx.textAlign=“left”;
ctx.fillText(data[i+1].value,200,rectH*i+titleH);
i++
}
}
return canvas;
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!