首页 > 解决方案 > 如何使用从三个js上的file.dat导入的真实值影响网格的节点

问题描述

我正在使用 Trois.js 进行几何可视化。我的目标是根据它们的值对网格的节点进行着色。为此,我已经创建了节点,我首先想从 file.dat 导入值,然后为节点分配这些值,以便根据分配的值更改节点的颜色。这是我用来创建节点的 code.js:

jsonURL = "/resources/datasets/Mesh.json";



var colors = ['#898ec1', '#9193bd', '#9999ba', '#a19eb7', '#a8a4b4', '#aea9b1', '#b5afae', '#bbb5ac', '#c1bbaa', '#c7c0a9', '#cdc6a8', '#d2cca8', '#d8d2a8', '#ded8a9', '#e3ddab', '#e8e3ae', '#ede9b2', '#f2efb9', '#f7f4c2', '#fcface', '#fff5d1', '#ffeac2', '#ffe0b3', '#fdd6a6', '#fbcc99', '#f7c38c', '#f3b980', '#efb075', '#eaa76a', '#e49e61', '#de9558', '#d88d4f', '#d18448', '#c97c41', '#c1753b', '#b86d37', '#b06733', '#a66030', '#9c5a2e', '#92542e']; 



$.getJSON(jsonURL , function setPoints(dataset) {
    var timestamp=1565715018;

    for (i=0; i<dataset.humidity.length;i++){
        if (dataset.humidity[i].time == timestamp){

           
            for (ii=0; i<dataset.humidity[i].data.length;ii++)
            {
                var dotPz = dataset.humidity[i].data[ii].x;
                var dotPx = dataset.humidity[i].data[ii].y;
                var dotPy = dataset.humidity[i].data[ii].z;
                
                var dotGeometry = new THREE.Geometry();
                dotGeometry.vertices.push(new THREE.Vector3( dotPx, dotPy, dotPz));

    
                var dotMaterial = new THREE.PointsMaterial( { 
                    size: 0.0002,
                    color: "#ffffff",         
                    blending: THREE.AdditiveBlending,
                    transparent: true,
                    depthTest: false,
                    sizeAttenuation: true,
                    
                } );

                


                scene.add(new THREE.Points(dotGeometry, dotMaterial));
            }
        };
    }
});

有谁知道如何使用从 file.dat 导入的值分配节点?任何想法都会非常有帮助!谢谢

标签: javascript

解决方案


推荐阅读