【问题标题】:translation matrix in javascriptjavascript中的翻译矩阵
【发布时间】:2015-08-20 08:51:33
【问题描述】:

我在 javascript 中有一个翻译矩阵,但我似乎无法正常工作。如果我有一个矩阵,我可以使用我使用的方法访问不同的级别,但是一旦我尝试将它与另一个矩阵相乘,我就会得到一个错误:内部错误设置变量。感谢您的 cmets。

function funct(number, number1) {
    var matrixATranslate = new Array();
    var matrixBTranslate = new Array();
    var matrixCTranslate = new Array();

    var matrixATranslate = [
        [1, number, 0, number1],
        [number1, 1, 0, 0],
        [0, 0, 0, 0]
    ];

    var matrixBTranslate = [
        [number],
        [number1],
        [0],
        [1]
    ];

    var row = 3, col = 4, add = 4;
    for (var i = 0; i < row; i++) {
        for (var j = 0; j < col; j++) {
            var sum = 0;
            for (var k = 0; k < add; k++) {
                sum += matrixATranslate[i, k] * matrixBTranslate[k, j];
            }
            matrixCTranslate[i, j] = sum;
        }
    }
    Vars.transformedPoint.x = matrixCTranslate[0][0];
    Vars.transformedPoint.y = matrixCTranslate[0][0];
    return Vars.transformedPoint;
}

Vars.transformedPoint = funct(10, 20);

【问题讨论】:

  • 哦!是的,那不是错误。我在机器视觉应用程序中使用它,它以这种方式引用在脚本窗口之外创建的变量。如果在脚本窗口中创建,那么它只是引用变量 var 的标准方式。
  • matrixBTranslate 是向量而不是矩阵,所以调用 matrixBTranslate[k, j]; 没有意义,因为 j 必须始终为零
  • 啊!抱歉 - 我在玩代码并更改了一些东西。
  • 啊抱歉 - 正在使用代码并更改了一些内容。行=2,列=0,添加=3。我有运行良好的 c# 版本,如果有帮助吗?除非回答我自己的问题,否则现在不知道如何在这里上传它
  • 函数应该返回什么结果?

标签: javascript arrays matrix iteration


【解决方案1】:

在这里找到工作代码。

var matrixATranslate = new Array();
var matrixBTranslate = new Array();
var matrixCTranslate = new Array();

for(var i = 0; i < 4; i++) {
    for(var j = 0; j < 4; j++) {
        matrixCTranslate[i,j] = [ ];
    }
}

var matrixATranslate = [
[5,6,7,8],
[10,20,30,40],
[100,200,300,400]
];

var matrixBTranslate = [5,6,7,8];

matrixCTranslate[0][0]=matrixATranslate[2][3] * matrixBTranslate[0,0];
var varA=matrixCTranslate[0,0];
console.log(varA)

【讨论】:

  • 对不起,这不是 js,我的意思是它的语法是正确的,但是像 matrixCTranslate[i,j]matrixBTranslate[0,0];varA=matrixCTranslate[0,0]; 这样的东西没有意义,因为逗号运算符的作用不像数组指示符在其他语言中。 - 答案是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多