无法获得顶点以完成三角形

Cannot get a vertex in position to complete a triangle

当我尝试创建立方体的那一侧时,我不知道为什么,但我无法找到那个顶点的位置,使它完成三角形并且我在那一侧有一个面。

目标是在顶部放置一个立方体,使其看起来像火车车厢。我尝试了很多不同的方法,但它就是不会形成 2 个三角形,它只是一个不断上下移动的三角形。

下面我放了创建前车的函数。

function makeTrainCar(){

  s = 0.5;
  var position = [
    -s, -s, -s, 
    s, -s, -s,
     s, s, -s, 
     -s, s, -s,

  -s, -s, s,
   s, -s, s,
    s, s, s,
     -s, s, s,
  
  -s, -s, -s,
   -s, s, -s,
    -s, s, s,
     -s, -s, s,

    s, -s, -s,
     s, s, -s,
      s, s, s,
       s, -s, s,

  -s, -s, -s,
   -s, -s, s,
    s, -s, s,
     s, -s, -s,
  //Top of car

  -s, s, -s, 
  -s, s, s, 
  s*0, s, s, 
  s*0, s, -s,

  s*0, s*2.5,-s,
  s*0, s*2.5,s,
  s*0, s,  s,
  s*0, s, -s,

  s, s,  -s,
  s, s,   s,
  s, s*2.5, s,
  s, s*2.5,-s,

  s, s, -s, 
  s, s*2.5, -s,
  s*0, s*2.5, -s, 
  s*0, s, -s,

  -s*0, s*2.5, s, 
  s, s, s,
  s, s*2.5, s, 
  -s*0, s, s,

];


  var normal = [0, 0, 1, 0, 0, 1,0, 0, 1,0, 0, 1,0, 0, 1,0, 0, 1,0, 0, 1,0, 0, 1];

  var texture = [0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
    1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1,
    1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0,
    0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,
    1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0,
    0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
    //
    0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
    0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
  ];

  var index = [0, 1, 2, 0, 2, 3,
    4, 5, 6, 4, 6, 7,
    8, 9, 10, 8, 10, 11,
    12, 13, 14, 12, 14, 15,
    16, 17, 18, 16, 18, 19,
    20, 21, 22, 20, 22, 23,
    //
    24, 25, 26, 24, 26, 27,
    28, 29, 30, 28, 30, 31,
    32, 33, 34, 32, 34, 35,
    36, 39, 38, 36, 38, 39,];
    
  return {
    position: position,
    normal: normal,
    texture: texture,
    index: index
  }

}

索引数组最后一行不正确:36,39,38,36,38,39,应该是36,37,38,36,38,39:

var index = [0, 1, 2, 0, 2, 3,
    4, 5, 6, 4, 6, 7,
    8, 9, 10, 8, 10, 11,
    12, 13, 14, 12, 14, 15,
    16, 17, 18, 16, 18, 19,
    20, 21, 22, 20, 22, 23,
    //
    24, 25, 26, 24, 26, 27,
    28, 29, 30, 28, 30, 31,
    32, 33, 34, 32, 34, 35,
    36, 37, 38, 36, 38, 39,];