【发布时间】:2021-07-10 15:55:26
【问题描述】:
我必须使用 three.js 绘制一个 3D 散点图。我尝试了我提到的以下代码。代码正在运行,但图形看起来类似于 2D 图形。可以调整摄像头的位置以使其看起来像 3D 图形,但我无法映射摄像头的确切位置。
let scene,camera,renderer,axes;
let set = [];
let createGeometry = function()
{
set.push(new THREE.Vector3(5,5,10) );
set.push(new THREE.Vector3(10,15,17));
set.push(new THREE.Vector3(15,20,12));
set.push(new THREE.Vector3(20,16,10));
set.push(new THREE.Vector3(17,9,19));
set.push(new THREE.Vector3(23,2,13));
let setgeometry = new THREE.BufferGeometry().setFromPoints(set);
let setmaterial = new THREE.PointsMaterial({ color : 0xff0000 , size : 10 ,sizeAttenuation : false});
let plot = new THREE.Points( setgeometry , setmaterial );
scene.add(plot);
}
let init = function(){
scene = new THREE.Scene;
scene.background = new THREE.Color(0x000000);
camera = new THREE.PerspectiveCamera(25 , window.innerWidth/window.innerHeight , 1 , 1000);
camera.position.set(20,10,90);
let axes =new THREE.AxesHelper(25);
scene.add(axes);
createGeometry();
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth,window.innerHeight);
document.body.appendChild(renderer.domElement);
};
let mainloop = function(){
renderer.render(scene , camera);
requestAnimationFrame(mainloop);
};
init();
mainloop();
html, body {margin: 0; padding: 0;overflow: hidden;}
<script src="https://cdn.jsdelivr.net/npm/three@0.117.1/build/three.min.js"></script>
【问题讨论】:
-
你的画布在哪里?
-
“无法映射相机的确切位置”是什么意思?能详细解释一下吗?
标签: javascript graph three.js 3d