Javascript three.js:使用圆几何的LineLoop中的间隙

Javascript three.js:使用圆几何的LineLoop中的间隙,javascript,three.js,Javascript,Three.js,我看到我画的圈子里有个缺口。这是我的密码: const discGeometry = new THREE.CircleGeometry(50, 64); const lineMaterial = new THREE.LineBasicMaterial({ transparent: true, opacity: 0.5, color: 0xffffff, linewidth: 1.5 }); const zenithEquator = new THREE.L

我看到我画的圈子里有个缺口。这是我的密码:

const discGeometry = new THREE.CircleGeometry(50, 64);
const lineMaterial = new THREE.LineBasicMaterial({
     transparent: true,
     opacity: 0.5,
     color: 0xffffff,
     linewidth: 1.5
});
const zenithEquator = new THREE.LineLoop(discGeometry, lineMaterial);
zenithEquator.rotation.z = THREE.Math.degToRad(90);
scene.add(zenithEquator);
结果如下:

以下是使用替代LineLoop的相同内容:

很明显,我看到的是圆段。如果增加或减少分段数,则间隙会相应改变

但是无论如何,我如何绘制这个简单的圆而不留下令人讨厌的间隙呢?

您可以在顶点数组上使用
.shift()

const discGeometry = new THREE.CircleGeometry(50, 64);
discGeometry.vertices.shift(); // here you remove the first vertex from the array
const lineMaterial = new THREE.LineBasicMaterial({
     transparent: true,
     opacity: 0.5,
     color: 0xffffff,
     linewidth: 1.5
});
const zenithEquator = new THREE.LineLoop(discGeometry, lineMaterial);
zenithEquator.rotation.z = THREE.Math.degToRad(90);
scene.add(zenithEquator);
可以对顶点数组使用
.shift()

const discGeometry = new THREE.CircleGeometry(50, 64);
discGeometry.vertices.shift(); // here you remove the first vertex from the array
const lineMaterial = new THREE.LineBasicMaterial({
     transparent: true,
     opacity: 0.5,
     color: 0xffffff,
     linewidth: 1.5
});
const zenithEquator = new THREE.LineLoop(discGeometry, lineMaterial);
zenithEquator.rotation.z = THREE.Math.degToRad(90);
scene.add(zenithEquator);
使用生成边并使用渲染

使用生成边并使用渲染


谢谢只需添加
EdgesGeometry
就可以解决问题,即使在使用LineLoop渲染时也是如此,但根据您的建议,我切换到了线段,因为我对3d技术还不熟悉。谢谢。只需添加
EdgesGeometry
就可以解决这个问题,即使在使用LineLoop渲染时也是如此——但根据您的建议,我切换到了线段,因为我对3d技术还不熟悉。