Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 如何向HTML5画布添加2个或更多3D对象?_Javascript_Three.js - Fatal编程技术网

Javascript 如何向HTML5画布添加2个或更多3D对象?

Javascript 如何向HTML5画布添加2个或更多3D对象?,javascript,three.js,Javascript,Three.js,我不熟悉Three.js,目前正在尝试开发基于web的3d对象查看器/编辑器。 我提到并能够开发查看、旋转和放大缩小的功能。我在画布上添加了一个拖放功能。目前,此函数只能使用“.stl”(小写)文件类型 我的目的是添加另一个.stl文件以添加到画布上并显示。我想如果有可能 -排列 -将删除的项目(.stl)文件存储到阵列中 -在画布上显示阵列中的所有可用项 我的JavaScript语言不是很高级,在开发这个函数的过程中仍在学习改进。请告知我是否在正确的轨道上,或者是否有任何可能的方法来实现这一点

我不熟悉Three.js,目前正在尝试开发基于web的3d对象查看器/编辑器。 我提到并能够开发查看、旋转和放大缩小的功能。我在画布上添加了一个拖放功能。目前,此函数只能使用“.stl”(小写)文件类型

我的目的是添加另一个.stl文件以添加到画布上并显示。我想如果有可能

-排列

-将删除的项目(.stl)文件存储到阵列中

-在画布上显示阵列中的所有可用项

我的JavaScript语言不是很高级,在开发这个函数的过程中仍在学习改进。请告知我是否在正确的轨道上,或者是否有任何可能的方法来实现这一点。或者,如果有任何资源我可以阅读更多信息。
提前谢谢。

您说您正在使用Three.js。我认为在三种情况下,你可以做如下事情:

mesh = new THREE.Mesh(sphere, material);
scene.add( mesh );
这基本上只会创建一个球体并将其放入场景tho中,但对加载程序也会这样做。场景。添加(任何)以在场景中显示。为了便于以后访问对象以进行位置更改和其他操作,可以将它们按如下方式推入数组:

var objectArray;

(inside loader)
scene.add( mesh );
objectArray.push(mesh);
然后,您可以稍后循环阵列以检查实例并执行定位等操作。
请注意,STL标签是针对C++问题的。你应该将数组初始化为:<代码> var ObjtRayLe][];<代码>谢谢,@Ernst和@BearProgrammer。我在下面试过了<代码>风险值项目=[];var scene=new THREE.scene();函数addItem(){if(handledrop){var object=document.getElementById('canvas-drop');items.push(“objects”);for(var obj=0;obj@user3188865,您正在创建对象
var object…
,但不是将其添加到数组中,而是添加一个字符串:
items.push(“对象”)
。我认为这不是你想要的。也许可以删除引号?是的@Bear,我已经按照你的建议进行了尝试。但是,仍然无法使用数组将对象显示回画布上。我认为我无法将这些代码放在正确的位置,这也给我带来了另一个问题。谢谢你的建议。