2015-02-23 1 views
-1

Я хочу использовать tanf, но я не могу найти код в js, что это делает tanf используется в c и C++, преобразовал код из C++ в js Я пытаюсь сделать 3D-просмотр без OpenGL или другие Librarys просто для удовольствия: PКак использовать tanf из C++ в javascript

извините за плохой английский: $ мой код

var Vector3 = function(X, Y, Z) { 
this.X = X; 
this.Y = Y; 
this.Z = Z; 

};

var Matrix = { 
    CreateProjection: function(fov, aspect, near, far) { 
     var bottom = -near * Math.tanf(0.5 * fov * Math.PI/180.0); 
     var top = -bottom; 
     var left = aspect * bottom; 
     var right = -left; 
     return Matrix.CreateFrustum(left, right, bottom, top, near, far); 
    }, 
    CreateFrustum: function(left, right, bottom, top, near, far) { 
     var dx = right - left; 
     var dy = bottom - top; 
     var dz = far - near; 

     var mx = 0.5 * (left + right); 
     var my = 0.5 * (bottom + top); 
     var mz = 0.5 * (near + far); 

     var n = near; 
     var nf = near * far; 

     var matrix = [2.0 * n/dx, 0.0, 2.0 * mx/dx, 0.0, 
         0.0, 2.0 * n/dy, 2.0 * my/dy, 0.0, 
         0.0, 0.0, -2.0 * mz/dz, -2.0 * nf/dz, 
         0.0, 0.0, -1.0, 0.0 
         ]; 
     return matrix; 
    }, 
    Translate: function(vector) { 
     var matrix = [ 
      1, 0, 0, vector.X, 
      0, 1, 0, vector.Y, 
      0, 0, 1, vector.Z, 
      0, 0, 0, 1 
     ]; 
     return matrix; 

    }, 
    MatrixToVector: function(matrix) { 
     var vectornew = [0, 0, 0, 0]; 
     for (var i = 0; i < 4; i++) { 
      //next row 
      for (var c = 0; c < 4; c++) { 
       if (matrix[(i * 4) + c] != 0) { 
        vectornew[i] += matrix[(i * 4) + c]; 
       } 
      } 
     } 
     return new Vector3(vectornew[0], vectornew[1], vectornew[3]); 
    } 
}; 
+1

Используйте Math.tan вместо tanf. – user4098326

+0

Это то же самое? –

+0

Если у вас есть доступ к компилятору C++, вы можете проверить это довольно легко :) – benjymous

ответ

0

Там нет в JavaScript нет tanf, так как все номера двойники в любом случае. Вместо этого используйте Math.tan.

Смежные вопросы