【问题标题】:Order of transformations in X3dX3d 中的转换顺序
【发布时间】:2021-10-23 07:36:23
【问题描述】:

我在 X3d 中对圆柱体应用了以下 2 种变换:

  <Transform   rotation="0 0 1 -0.785">
    <Transform  translation="0 2 0">      
      <Shape><Cylinder height="4" radius="0.1" />
      <Appearance><Material diffuseColor="1 0 0" /></Appearance>
      </Shape>
    </Transform>
  </Transform>

根据 X3d 规范,嵌套变换应用于对象的顺序是,首先是最嵌套的变换,在我的示例中是平移,其次是外部变换,即在我的示例中是旋转。

所以我不明白这是上面X3d代码的结果:

据我了解,应该是这样的:

因为首先对圆柱体应用平移,将其中点从 (0,0,0) 移动到 (0,2,0),然后应用旋转。旋转中心应该是 (0, 2,0),而不是第一张图片所暗示的 (0,0,0)。

感谢您对我为什么向后理解它的任何解释。

【问题讨论】:

    标签: 3d x3d vrml


    【解决方案1】:

    误解是您错误地断言“旋转中心应该是2.0 ...”。外部变换确实没有考虑内部变换在某种意义上移动了原点的事实。换句话说,X3D 中的变换是活动的,它们移动内部的形状,而不是坐标系。内部变换沿 y 轴“向上”移动圆柱体,使坐标系保持不变。然后外部变换应用 -pi/4 围绕未更改的 z 轴进行旋转,该 z 轴通过原点 (0,0,0)

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2014-07-03
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多