开源改变世界

矩阵转置与逆矩阵不同 #935

推推 grbl 2年前 (2023-02-06) 272次浏览
关闭
nophead 打开了这个问题 2014 年 5 月 24 日 · 8条评论
关闭

矩阵转置与逆矩阵不同#935

nophead 打开了这个问题 2014 年 5 月 24 日 · 8条评论

评论

矩阵转置与逆矩阵不同 #935
贡献者

在 planner.cpp 中,我们有以下内容:

vector_3 plan_get_position() {
    vector_3 position = vector_3(st_get_position_mm(X_AXIS), st_get_position_mm(Y_AXIS), st_get_position_mm(Z_AXIS));

    //position.debug("in plan_get position");
    //plan_bed_level_matrix.debug("in plan_get bed_level");
    matrix_3x3 inverse = matrix_3x3::transpose(plan_bed_level_matrix);
    //inverse.debug("in plan_get inverse");
    position.apply_rotation(inverse);
    //position.debug("after rotation");

    return position;
}

这似乎假设矩阵的逆与转置相同,但事实并非如此。我错过了什么或者这是胡说八道吗?

矩阵转置与逆矩阵不同 #935

只要 plan_bed_level_matrix 是旋转矩阵(或正交矩阵),这就会起作用。

矩阵转置与逆矩阵不同 #935
贡献者作者

好的,这里似乎就是这种情况。我不知道那个捷径。