xxxxxxxxxx
146
const w = 400;
const h = 400;
const d = 100;
let v = 5;
var t = 0;
var v1;
var v2;
var v3;
var v4;
var V;
var VR = [];
var Vt;
var PV;
var PC;
const E = [
[0, 1],
[1, 3],
[3, 2],
[2, 0],
];
function matmul(a,b){
var res=[]
var sum=0
for(i=0;i<a.length;i++){
for(j=0;j<b.length;j++){
res.push([])
for(k=0;k<b.length;k++){
sum+=a[j][k]+b[k][i]
}
res[i].push(sum)
console.log(res[i])
}
}
return res
}
console.log(matmul([[0,1],[1,0]],[[1,2],[3,4]]))
function setup() {
createCanvas(w, h, WEBGL);
v1 = createVector(-10, -10, d);
v2 = createVector(10, -10, d);
v3 = createVector(-10, 10, d);
v4 = createVector(10, 10, d);
V = [v1, v2, v3, v4];
//console.log(Vf[i].x);
//console.log(v1)
}
function forward() {
for (i = 0; i < V.length; i++) {
V[i].add(0, 0, -v);
}
//console.log(Vf)
}
function back() {
for (i = 0; i < V.length; i++) {
V[i].add(0, 0, v);
}
}
function sleft() {
for (i = 0; i < V.length; i++) {
V[i].add(v / 10);
}
}
function sright() {
for (i = 0; i < V.length; i++) {
V[i].add(-v / 10);
//console.log(Vf[i])
}
}
function lleft() {
t += PI / 180;
}
function lright() {
t -= PI / 180;
}
function draw() {
//translate(w / 2, h / 2);
var Rx = [
[1, 0, 0],
[0, cos(t), -sin(t)],
[0, sin(t), cos(t)],
];
var Ry = [
[cos(t), 0, -sin(t)],
[0, 1, 0],
[sin(t), 0, cos(t)],
];
background(220);
if (keyIsDown(188) || keyIsDown(87)) {
forward();
//console.log(Vf)
}
if (keyIsDown(79) || keyIsDown(83)) {
back();
}
if (keyIsDown(222) || keyIsDown(81)) {
sleft();
}
if (keyIsDown(190)) {
sright();
}
if (keyIsDown(65)) {
lleft();
//print(t)
}
if (keyIsDown(69)) {
lright();
}
PV = [];
PC = [];
//console.log(v1)
VR = [];
for (i = 0; i < V.length; i++) {
//print(cos(t))
//print(sin(t))
//print(V[i])
VR.push([
cos(t) * V[i].x + sin(t) * V[i].z,
V[i].y,
-sin(t) * V[i].x + cos(t) * V[i].z,
]);
//print(VR[i])
per0 = atan(VR[i][0] / VR[i][2]);
//console.log(per0)
//console.log((Vf[i]-p))
//console.log(Vf[i][0]+','+Vf[i].z)
per1 = atan(VR[i][1] / mag(VR[i][0], VR[i][2]));
//print(per1)
//console.log(Vt[i])
//PC.append([d*sw*per1,d*sh*per0])
PC.push([VR[i][2] * w * per0, VR[i][2] * h * per1]);
PV.push([
(abs(per0) * w * VR[i][0]) / abs(VR[i][0]),
(abs(per1) * h * VR[i][1]) / abs(VR[i][1]),
]);
//print(PV)
}
for (i = 0; i < E.length; i++) {
//console.log(PV[0][0])
//console.log(PV[0][1])
//console.log(PV[1])
//console.log(PV[1][1])
line(PV[E[i][0]][0], PV[E[i][0]][1], PV[E[i][1]][0], PV[E[i][1]][1]);
line(PV[E[i][0]][0], PV[E[i][0]][1], PC[E[i][0]][0], PC[E[i][0]][1]);
}
}