Я хочу использовать 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]);
}
};
Используйте Math.tan вместо tanf. – user4098326
Это то же самое? –
Если у вас есть доступ к компилятору C++, вы можете проверить это довольно легко :) – benjymous