代码之家  ›  专栏  ›  技术社区  ›  Ali Kanat

使用4x4变换矩阵变换对象时的怪异行为

  •  0
  • Ali Kanat  · 技术社区  · 7 年前

    我正试图从一个坐标空间转换到另一个坐标空间。我有两组对象表示空间中的点。另外,我总共有6个对象,我正在寻找它们之间的转换矩阵,并使用以下代码将此转换应用于第7个对象:

          TestObject.transform.position = TransformationMatrix.MultiplyPoint(InitPosition);
          TestObject.transform.rotation = Quaternion.LookRotation(TransformationMatrix.GetColumn(1),
                                            TransformationMatrix.GetColumn(2))* InitQT;
          Debug.Log("Test object is at" + TestObject.transform.position+"
          local position"+TestObject.transform.localPosition+" Calculation is "
          + TransformationMatrix.MultiplyPoint(InitPosition));
    

    Test object is at(12.5, 2.5, 0.0) local position(12.5, 2.5, 0.0) Calculation is (12.5, 2.5, 0.0)
    

    但是在督察室我得到了结果 (12.5,2.5,-4.47034) -4.47034 .

    我用这个场景来测试我的转变。通常情况下,我必须将此转换应用于激光扫描仪到单位坐标系,即使这不会影响任何东西,并且对象处于正确的位置,但当我要将此转换应用于单位和激光扫描仪坐标系转换时,恐怕这可能会导致问题。因为它不像在测试场景中那样工作。是不是我在使用 MultiplyPoint ? 这是我的检查器视图:我正在从蓝色坐标空间转换为红色。提前感谢您的帮助!

    enter image description here

    0 回复  |  直到 7 年前