【问题标题】:How can I provide interactive rotation of an object?如何提供对象的交互式旋转?
【发布时间】:2012-01-01 16:29:36
【问题描述】:

在 Three.js 中,有各种控件,例如 TrackballControls,可以让用户控制摄像头。这很好,但我希望用户能够旋转场景的一部分(例如分子)而不旋转场景的其余部分(例如不同的分子或光源)。

关于如何做到这一点的任何建议?

我想知道,如果我为 TrackballControls() 构造函数而不是相机提供了一个不同的对象......它会只是旋转那个对象吗?好像不太可能……

【问题讨论】:

    标签: user-interface graphics three.js


    【解决方案1】:

    要旋转一个对象,你应该设置它的旋转坐标,所以一旦它被渲染,它的视觉就会相应地更新。要一次只旋转一个对象,请将用户输入绑定到该特定对象的旋转参数。

    查看此示例,您可以在其中使用鼠标或触摸输入旋转一个立方体: http://mrdoob.github.com/three.js/examples/canvas_geometry_cube.html

    还有这个,它显示了如何使用鼠标选择对象: http://mrdoob.github.com/three.js/examples/canvas_interactive_cubes_tween.html

    【讨论】:

    • 所以基本上,我需要在较低级别实现它(mouseDown / mouseMove 事件),而不是能够使用像 trackballControls 这样的包......或者可能扩展 TrackballControls 以便能够控制另一个对象而不是相机。
    • 我在这里查看了各种控件的源代码github.com/mrdoob/three.js/tree/master/src/extras/controls,它们是为通用目的而制作的,所以我想没有什么可以阻止你将它们绑定到一个对象而不是相机,你试过吗?
    • 不,我没有……我想我会试一试的。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2014-08-27
    • 2021-05-07
    • 2015-06-22
    相关资源
    最近更新 更多