Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript document.getElementById().setAttribute()在X3D中无法正常工作_Javascript_X3d_X3dom - Fatal编程技术网

Javascript document.getElementById().setAttribute()在X3D中无法正常工作

Javascript document.getElementById().setAttribute()在X3D中无法正常工作,javascript,x3d,x3dom,Javascript,X3d,X3dom,我正在尝试使用X3D绘制存储在另一个文件中的点的曲面。我使用IndexedTriangleSet和坐标来设置点并形成曲面。但由于这些点可能会发生变化,我不能简单地使用以下代码(假设在“index=”和“point=”之后有信息): 相反,我必须使用javascript从另一个文件中获取点和三角形,并使用以下代码进行设置: <script> var a = []; var b = []; var c =

我正在尝试使用X3D绘制存储在另一个文件中的点的曲面。我使用IndexedTriangleSet和坐标来设置点并形成曲面。但由于这些点可能会发生变化,我不能简单地使用以下代码(假设在“index=”和“point=”之后有信息):


相反,我必须使用javascript从另一个文件中获取点和三角形,并使用以下代码进行设置:

   <script>

            var a = [];
            var b = [];
            var c = [];
            var tria = [];
            var trib = [];
            var tric = [];

            var str = "";
            var str_tri = "";


            fetch("Volume63.json")
                .then(response => response.json())
                .then(data => {

                    for(var cont in data.axis_xyz_inside_silo){
                        a.push(data.axis_xyz_inside_silo[cont].x);
                        b.push(data.axis_xyz_inside_silo[cont].y);
                        c.push(data.axis_xyz_inside_silo[cont].z);
                        str += (`${a[cont]} ${b[cont]} ${c[cont]}, `);
                    }

                    str = str.slice(0, -2);
                    console.log(a.length);

                fetch("triangulos_63.json")
                    .then(response => response.json())
                    .then(data => {

                        for(var cont in data.triangulos){
                            tria.push(data.triangulos[cont].tri_a);
                            trib.push(data.triangulos[cont].tri_b);
                            tric.push(data.triangulos[cont].tri_c);
                            str_tri += (`${tria[cont]} ${trib[cont]} ${tric[cont]}, `);
                        }

                        str_tri = str_tri.slice(0, -2);

                        document.getElementById('tri').setAttribute('index', str_tri);
                        document.getElementById('pts').setAttribute('point', str);

                        console.log(str);
                        console.log(str_tri);

                })
            })
            
            console.log("acabou");
    </script>

var a=[];
var b=[];
var c=[];
var-tria=[];
var-trib=[];
var=[];
var str=“”;
var str_tri=“”;
获取(“Volume63.json”)
.then(response=>response.json())
。然后(数据=>{
用于(var cont in data.axis\U xyz\U silo内的var cont){
a、 推送(数据.axis_xyz_in_silo[cont].x);
b、 推送(数据.axis_xyz_in_silo[cont].y);
c、 推送(数据.axis_xyz_-in_-silo[cont].z);
str+=(`a[cont]}${b[cont]}${c[cont]},`);
}
str=str.slice(0,-2);
控制台日志(a.长度);
fetch(“triangulos_63.json”)
.then(response=>response.json())
。然后(数据=>{
for(数据中的变量cont.triangulas){
tria.push(data.triangulos[cont].tri_a);
trib.push(data.triangulos[cont].triu-b);
tric.push(data.triangulos[cont].tri_c);
str_tri+=(`${tria[cont]}${trib[cont]}${tric[cont]},`);
}
str_tri=str_tri.切片(0,-2);
document.getElementById('tri').setAttribute('index',str_tri);
document.getElementById('pts').setAttribute('point',str);
console.log(str);
控制台日志(str_tri);
})
})
控制台日志(“acabou”);
但出于某种原因,当我使用javascript时,我会得到如下图像:

如果我直接在“index=”和“point=”之后复制并粘贴字符串“str_tri”和“str”,它会正常工作(我不能在这里插入多个图像)

可能这个问题是因为我使用了大量的点(7500)。但是我试着减少分数,但仍然没有达到应有的效果

   <script>

            var a = [];
            var b = [];
            var c = [];
            var tria = [];
            var trib = [];
            var tric = [];

            var str = "";
            var str_tri = "";


            fetch("Volume63.json")
                .then(response => response.json())
                .then(data => {

                    for(var cont in data.axis_xyz_inside_silo){
                        a.push(data.axis_xyz_inside_silo[cont].x);
                        b.push(data.axis_xyz_inside_silo[cont].y);
                        c.push(data.axis_xyz_inside_silo[cont].z);
                        str += (`${a[cont]} ${b[cont]} ${c[cont]}, `);
                    }

                    str = str.slice(0, -2);
                    console.log(a.length);

                fetch("triangulos_63.json")
                    .then(response => response.json())
                    .then(data => {

                        for(var cont in data.triangulos){
                            tria.push(data.triangulos[cont].tri_a);
                            trib.push(data.triangulos[cont].tri_b);
                            tric.push(data.triangulos[cont].tri_c);
                            str_tri += (`${tria[cont]} ${trib[cont]} ${tric[cont]}, `);
                        }

                        str_tri = str_tri.slice(0, -2);

                        document.getElementById('tri').setAttribute('index', str_tri);
                        document.getElementById('pts').setAttribute('point', str);

                        console.log(str);
                        console.log(str_tri);

                })
            })
            
            console.log("acabou");
    </script>