Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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
解析SQL输出坐标并在JavaScript3D中访问它们的最佳方法?_Javascript_Java_Three.js - Fatal编程技术网

解析SQL输出坐标并在JavaScript3D中访问它们的最佳方法?

解析SQL输出坐标并在JavaScript3D中访问它们的最佳方法?,javascript,java,three.js,Javascript,Java,Three.js,我需要从Postgres数据库中获取数据(数字坐标)(我认为一个.txt文件可以用于解析),对其进行解析,以便我只使用坐标的1/5,并以某种方式在JavaScript中导入/访问这些坐标(用于three.js库) 我可以将SQL表数据放入一个文本文件中,虽然我没有太多的解析经验,但我认为我也可以做到这一点(尽管我不知道如何在JavaScript中做到这一点,或者我是否可以在Java中通过一些中间步骤做到这一点…?),但主要的问题是访问JavaScript中的数据。我希望你们都能帮助我充实实现目标

我需要从Postgres数据库中获取数据(数字坐标)(我认为一个.txt文件可以用于解析),对其进行解析,以便我只使用坐标的1/5,并以某种方式在JavaScript中导入/访问这些坐标(用于three.js库)

我可以将SQL表数据放入一个文本文件中,虽然我没有太多的解析经验,但我认为我也可以做到这一点(尽管我不知道如何在JavaScript中做到这一点,或者我是否可以在Java中通过一些中间步骤做到这一点…?),但主要的问题是访问JavaScript中的数据。我希望你们都能帮助我充实实现目标的最佳过程。谢谢

编辑: JavaScript将在一个HTML文档中,并且由于一些不必要的复杂原因,需要在不访问数据库的情况下运行Three.js

更新: 以下是我迄今为止所做的工作。我不熟悉JavaScript和Three.js。打开文件会导致出现空白网页


可视化人类自定义几何体
身体{
保证金:0;
溢出:隐藏;
}
//首先,暴力企图2017年3月21日-2017年3月22日——ferrovax
var轨道;
函数init(){
var stats=initStats();
var scene=new THREE.scene();
var摄像机=新的三透视摄像机(45,window.innerWidth/window.innerHeight,0.11000);
var renderer=new THREE.WebGLRenderer();
setClearColor(新的三种颜色(0xEEEE,1.0));
renderer.setSize(window.innerWidth、window.innerHeight);
renderer.shadowMapEnabled=true;
camera.position.x=-80;
摄像机位置y=80;
摄像机位置z=80;
摄像机。观察(新的三个向量3(60,-60,0));
var spotLight=新的三方向光(0xffffff);
spotLight.position=新的三个矢量3(70、170、70);
聚焦强度=0.7;
spotLight.target=bodyGeo;
场景。添加(聚光灯);
document.getElementById(“WebGL输出”).appendChild(renderer.doElement);
orbit=新的三个.OrbitControl(摄影机、webGLRenderer.DoElement);
var阶跃=0;
var body=newmap();
var bodyGeo=new THREE.Geometry();
parse();
添加(新的三个网格(bodyGeo,cubeMaterial));
parse=函数(){
$.ajax({
url:'output2.txt',
成功:功能(数据){
对于每个(data.split('\n')中的var条目){
var计数=0;
var-nameKey;
var path=新的d3.path();
var layerZ;
对于每个(entry.split('\s')中的var块){
如果(/[0-9]+/.test(块)){
//chunk是层号
layerZ=parseInt(块);
}如果(/[^0-9]+/.test(块)){
//chunk是名称,因此请检查它是否存在,必要时进行设置
如果(!body.has(chunk)){
nameKey=chunk;
body.set(名称键、路径);
}
}否则{
//chunk是整个坐标块
对于每个(chunk.split(':')中的var coordinatePair){
如果(计数%20==0){
变量xy=坐标对分割(',');
path.lineTo(xy[0],xy[1]);
}
计数++;
}
}
}
closePath();
var shape=transformsvgpathasexposed(path.toString());
变量选项={
步骤:2,
金额:200,
是的,
体重:1,
贝弗西:1,
斜面部分:1
};
var outline=createMesh(新的三点挤压测量法(形状、选项));
outline.updateMatrix();
bodyGeo.merge(outline.geometry,outline.matrix);
}
}
});
}
var gui=new dat.gui();
render();
函数render(){
stats.update();
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
函数initStats(){
var stats=newstats();
stats.setMode(0);//0:fps,1:ms
stats.domElement.style.position='绝对';
stats.domeElement.style.left='0px';
stats.domElement.style.top='0px';
document.getElementById(“Stats输出”).appendChild(Stats.doElement);
返回统计;
}
}
window.onload=init

如果您可以在Postgres中将数据获取到单个表或视图中,则。一旦你有了CSV版本的数据,你就可以用一个。您可以先将其传递给此库进行解析。

当我提到three.js库时,我没有提到。这意味着我想使用这个库来导入数据,而不是最终尝试使用three.js来处理坐标数据。我已经更新了我的答案,说明了在您的约束下如何处理这些数据。我添加的代码片段功能极其不正常。提前感谢您就如何清理它提出的所有建议。请不要批评我