У меня есть объект Cube. Он устанавливается как этотУмножение матрицы Javascript на скалярный
//Cube object
function Cube(vertices, color, scale)
{
//this.vertices = vertices;
this.setColor(color);
this.setScale(vertices, 1);
}
Я закомментированного //this.vertices = vertices;
, потому что я не уверен, если я должен установить вершины здесь или установить их в setScale()
функции.
Я хочу установить шкалу на матрицу. Матрица:
var verts = [
// Front face
-1.0, -1.0, 1.0,
1.0, -1.0, 1.0,
1.0, 1.0, 1.0,
-1.0, 1.0, 1.0,
// Back face
-1.0, -1.0, -1.0,
-1.0, 1.0, -1.0,
1.0, 1.0, -1.0,
1.0, -1.0, -1.0,
// Top face
-1.0, 1.0, -1.0,
-1.0, 1.0, 1.0,
1.0, 1.0, 1.0,
1.0, 1.0, -1.0,
// Bottom face
-1.0, -1.0, -1.0,
1.0, -1.0, -1.0,
1.0, -1.0, 1.0,
-1.0, -1.0, 1.0,
// Right face
1.0, -1.0, -1.0,
1.0, 1.0, -1.0,
1.0, 1.0, 1.0,
1.0, -1.0, 1.0,
// Left face
-1.0, -1.0, -1.0,
-1.0, -1.0, 1.0,
-1.0, 1.0, 1.0,
-1.0, 1.0, -1.0
];
Функция я использую, чтобы установить масштаб, как это:
Cube.prototype.setScale = function(vertices, scale)
{
var length = vertices.length;
for(var i = 0; i < length; i++)
{
//alert("before "+ vertices[i]+ " i "+ i);
vertices[i] *= scale;
//alert("after "+ vertices[i]);
}
Я думаю, что, делая это для цикла следует принимать длину матрицы и начать цикл.
В этом цикле for я получаю вершину в i и умножаю ее по шкале.
Когда я делаю это так, хотя цикл for повторит. То есть когда я ударяет 72, цикл не останавливается.
Я внедрил изменения имен и раскомментировал 'this.vertices', это зафиксировало вершины и изменило их размеры. –