【问题标题】:Three.js How to draw multiple spheres every 30deg for a clockThree.js如何为时钟每30度绘制多个球体
【发布时间】:2014-06-04 10:06:55
【问题描述】:

晚上好,

我使用的是 EaselJS,现在我正在尝试弄清楚如何使用 ThreeJS。

在 EaselJS 中,您可以在旋转之前在画布上设置元素的旋转点,但在 ThreeJS 中似乎无法做到这一点。

那么,我怎样才能画一个非常 30 度的球体来形成一个圆,就像一个时钟。

12 点的球体,1 点钟,2 点钟,3 点钟...

我可以旋转我的球体(没用)并定位它,但我不知道如何计算坐标。

迫不及待地想收到你们的回复, 周杰伦

【问题讨论】:

    标签: rotation three.js html5-canvas


    【解决方案1】:

    您需要平移然后旋转每个球体。 所以用时钟的半径来平移每个圆,

    circle.translateZ(10);
    

    然后通过围绕时钟中心旋转将其旋转到位。在这种情况下,围绕 y 轴,

    circle.rotateOnAxis(new THREE.Vector3(0.0, 1.0, 0.0), THREE.Math.degToRad(30*i));
    

    对每个圆圈都这样做。 这两个库都基于具有矩阵旋转和平移的层次场景。但一个是3D。 API 也有点不同。

    【讨论】:

    • 是的,我以前从未从事过 3D 工作,这是一个很大的变化!非常感谢你的帮助 ;-) 你挥手给我很多时间。
    • 我现在无法使用计算机,但我试过了,它只从对象的中心旋转。 (我把球体换成了一个矩形来看看变换操作)今天晚些时候我将把代码粘贴过来。
    • 该死,这需要一个额外的 3DObject 来充当枢轴。所以这可能只是另一个领域。然后将旋转应用于枢轴。每个球体都添加了枢轴对象,因此是该对象的子对象,而不是场景。然后可以将其翻译到位。这个问题和答案更详细。 stackoverflow.com/questions/15214582/…
    • 非常感谢 Culzean 的帮助。该链接非常有用。
    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 2019-03-02
    • 2021-06-16
    • 1970-01-01
    • 2010-12-07
    • 2013-12-19
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多