我无法读取JSON文件中的数据。我已经阅读了其他关于Stack Overflow和JSON文档的JSON问题,但无济于事。从JSON文件中读取数据点
我想读取的数据显示在Three.js中。下面的代码片段工作:
var obj = { "points" : [
{ "vertex":[0.0,0.0,0.0] },
{ "vertex":[200.0,0.0,0.0] },
{ "vertex":[-200.0,0.0,0.0] },
{ "vertex":[0.0,100.0,0.0] },
{ "vertex":[0.0,-100.0,0.0] },
{ "vertex":[0.0,0.0,300.0] },
{ "vertex":[0.0,0.0,-300.0] },
{ "vertex":[75.0,75.0,75.0] },
{ "vertex":[50.0,50.0,50.0] },
{ "vertex":[25.0,25.0,25.0] } ]};
var geometry = new THREE.Geometry();
for (var i=0;i<10;i++)
{
var vertex = new THREE.Vector3();
vertex.x = obj.points[i].vertex[0];
vertex.y = obj.points[i].vertex[1];
vertex.z = obj.points[i].vertex[2];
geometry.vertices.push(vertex);
}
,读入点和点上下行进一步呈现。我旁边有一个名为中的index.html
test.json
一个文件时,它包含以下内容:
{ "points" : [
{ "vertex":[0.0,0.0,0.0] },
{ "vertex":[200.0,0.0,0.0] },
{ "vertex":[-200.0,0.0,0.0] },
{ "vertex":[0.0,100.0,0.0] },
{ "vertex":[0.0,-100.0,0.0] },
{ "vertex":[0.0,0.0,300.0] },
{ "vertex":[0.0,0.0,-300.0] },
{ "vertex":[75.0,75.0,75.0] },
{ "vertex":[50.0,50.0,50.0] },
{ "vertex":[25.0,25.0,25.0] }
]}
我的问题是,以下不工作(即不显示点):
var geometry = new THREE.Geometry();
var obj2 = jQuery.getJSON('test.json');
for (var i=0;i<10;i++)
{
var vertex = new THREE.Vector3();
vertex.x = obj2.points[i].vertex[0];
vertex.y = obj2.points[i].vertex[1];
vertex.z = obj2.points[i].vertex[2];
geometry.vertices.push(vertex);
}
这些文件位于我的公共文件夹Dropbox并从公共链接中查看,即使如此,以防万一我使用--allow-files-access-from-files标志运行chrome。
UPDATE
我的钥匙错误是不处理的功能的getJSON的回调顶点。我的第二个错误是假设在回调中将顶点添加到几何堆栈就足够了。事实上,我必须从几何创建对象,并将其添加到场景中才能使用。非常感谢大家的帮助。
$.getJSON('test.json', function(obj2) {
var geometry = new THREE.Geometry();
for (var i=0;i<10;i++)
{
var vertex = new THREE.Vector3();
vertex.x = obj2.points[i].vertex[0];
vertex.y = obj2.points[i].vertex[1];
vertex.z = obj2.points[i].vertex[2];
geometry.vertices.push(vertex);
}
vc1 = geometry.vertices.length;
object = new THREE.ParticleSystem(geometry, shaderMaterial);
object.dynamic = true;
var vertices = object.geometry.vertices;
var values_size = attributes.size.value;
var values_color = attributes.ca.value;
for(var v = 0; v < vertices.length; v ++) {
values_size[ v ] = 50;
values_color[ v ] = new THREE.Color(0xffffff);
}
scene.add(object);
});
“不行”如何? – 2013-03-12 13:10:30
对不起,它没有提供任何点。更新了问题。 – StuGrey 2013-03-12 13:12:35