【问题标题】:Three-react-fiber Setting the rotation axis to the centre of the model三反应纤维将旋转轴设置为模型的中心
【发布时间】:2020-07-07 20:52:01
【问题描述】:

我有一个在 X 轴上旋转的模型,但旋转的中心不在轴本身上。旋转代码很简单:

model.current.rotation.x += 0.016; (axis and speed)

但似乎没有办法定义实际的旋转轴来确保模型只围绕自己的中心旋转。此刻它在旋转一个大圆圈!

任何建议表示赞赏。

:-0

【问题讨论】:

  • 使用您的代码,它应该在 x 轴上旋转。也许问题出在您的模型/图形中。您能分享您的模式的代码吗?
  • 谢谢伙计,你说得很对——在实际的 Blender 模型中,轴心点和原点都位于错误的位置。我只是想通了——很高兴得到你的确认。 :-)

标签: reactjs three.js react-three-fiber


【解决方案1】:

您的网格很可能没有居中,这意味着顶点指向模型质心之外。你可以在搅拌机中解决这个问题,但即使是threejs也有重新计算顶点的方法(在几何上)。更便宜的解决方案是渲染网格,取一个 box3,从对象中设置它,然后获取 min/max 并使用它来将对象移动一半。

【讨论】:

  • 谢谢。你的评估证实了我今天下午的看法。我需要在 Blender 中重置轴心点和模型原点。我以为它只会发送模型并在其实际中心上旋转...... Threejs 还有一些其他选项 - 例如 Matrix。但是我的应用程序正在使用 react-three-fiber 运行,并且在 threeJS 中几乎所有有用的东西都无法在该环境中运行。所以谢谢你让我知道。我原以为是模型本身导致了问题,但您已经确认了。希望我能在早上(悉尼时间)解决这个问题。 :-)
  • 如果您发现此答案有帮助。请投票。它可以给一点鼓励。
  • 嗨 Muhammad 你说的很对 - 有两个问题:轴心点未设置为网格中心,网格未设置为世界原点(空间中心),因此模型围绕更宽的轴旋转。很容易修复:-)
  • 这如何与 组件一起工作?它似乎是自动居中的,但轴不在模型的中间。如果使用 但不能直接使用旋转道具,它会正确旋转
猜你喜欢
  • 2022-12-23
  • 1970-01-01
  • 2021-04-18
  • 2021-07-11
  • 2021-05-09
  • 2013-02-12
  • 2012-08-02
  • 2021-06-08
  • 2021-08-09
相关资源
最近更新 更多