JSFiddle - React, Tailwind, and code Playground

by PiereDome

JavaScript

array = makePerspective(160, window.innerWidth/window.innerHeight, 1, 100);
console.log(array);
while (array.length > 0) {
    for (x = 0; x < 4; x++) {
        document.write(array.shift()+',');
    }
    document.write('</br>');
}


function makePerspective(fov, aspect, near, far) {
    "use strict";
    var fov = near * Math.tan(fov * Math.PI / 360),
        e = -fov;
    return makeFrustrum(-fov * aspect, fov * aspect, -fov, fov, near, far);
}


function makeFrustrum(a, b, c, d, e, f) {
    "use strict";
    var g = [];
    g[0] = 2 * e / (b - a);
    g[4] = 0;
    g[8] = (b + a) / (b - a);
    g[12] = 0;
    g[1] = 0;
    g[5] = 2 * e / (d - c);
    g[9] = (d + c) / (d - c);
    g[13] = 0;
    g[2] = 0;
    g[6] = 0;
    g[10] = -(f + e) / (f - e);
    g[14] = -2 * f * e / (f - e);
    g[3] = 0;
    g[7] = 0;
    g[11] = -1;
    g[15] = 0;
    return g;
}