Javascript 无法使用三个js渲染网格

Javascript 无法使用三个js渲染网格,javascript,html,three.js,Javascript,Html,Three.js,这段代码应该在三个js中生成一个环面网格。我很肯定数学是正确的。然而,如果我改变一些参数,它只会渲染一个圆环体,或者一些奇怪的东西。我练习三网有什么不好吗 //网格的顶点和顶点法线---------------- var nx=64; var ny=32; var R=10;var r=3; var顶点=新数组(nx); var Normals=新数组(nx); 对于(变量i=0;i

这段代码应该在三个js中生成一个环面网格。我很肯定数学是正确的。然而,如果我改变一些参数,它只会渲染一个圆环体,或者一些奇怪的东西。我练习三网有什么不好吗

//网格的顶点和顶点法线----------------
var nx=64;
var ny=32;
var R=10;var r=3;
var顶点=新数组(nx);
var Normals=新数组(nx);
对于(变量i=0;i
画布{
宽度:100%;
身高:100%
}

我认为您的代码有两个问题:

  • 使用
    Geometry
    时,只需将
    Face3
    类型的对象添加到
    faces
    数组中即可定义面。几何体的顶点仅定义一次。在您的情况下,您可以这样做:

    geom.vertices = dotGeometry.vertices;
    
  • 此外,你脸上的扭曲顺序也不正确。您必须切换第一个索引和第三个索引