首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X3d中的转换顺序

X3d中的转换顺序
EN

Stack Overflow用户
提问于 2021-08-22 19:02:43
回答 1查看 26关注 0票数 0

我在X3d中对一个圆柱体应用了以下两个变换:

代码语言:javascript
复制
  <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)。

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

EN

回答 1

Stack Overflow用户

发布于 2021-09-08 01:37:07

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68884348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档