改变旋转点

时间:2016-09-01 14:52:45

标签: javascript three.js rotation

我正在建造一个带门的橱柜3D模型以及动态改变尺寸的机会。我的橱柜是一套在json中定义的立方体。这是架子上的例子:

addButtonCopyFiles[i].ID = templateId[i].Text;
eachPanel[i].Controls.Add(addButtonCopyFiles[i]);

调整静态元素的比例和位置没有问题,我这样做:

{
  "name": "shelf_top",
  "rotation_point": {
    "px": 0,
    "py": 0,
    "pz": 0,
    "onclick": [{
      "rx": 0,
      "ry": 0,
      "rz": 0
    }]
  },
  "elements": [{
    "e_type": "box",
    "h": 50,
    "w": 100,
    "d": 2,
    "x": 0,
    "y": 49,
    "z": 0,
    "rx": Math.PI / 2,
    "ry": 0,
    "rz": 0,
    "textures": ["textures/drewno.jpg", "textures/drewno.jpg", "textures/drewno.jpg", "textures/drewno.jpg", "textures/bok.jpg", "textures/drewno.jpg"]
  }],
  "handler": null
}

但我不知道如何处理旋转门。它们具有旋转点,在调整大小期间应该将旋转点连接到墙壁的前部。但是没有设置旋转点的方法。我已经尝试根据这个答案Three.js move geometry's center进行翻译,但它只改变了位置,而不是轮换点。 在这里,它是门的json表示:

function resizeHeight(h) {
  $clickEvent[0].scale.y = h - 4;
  $clickEvent[1].scale.y = h - 4;
  $clickEvent[2].scale.y = h - 4;
  $clickEvent[4].position.setY(-h / 2 + 1);
  $clickEvent[5].position.setY(h / 2 - 1);
}

编辑: 在将旋转点设置为父对象的方法中进行深入研究后,一切正常。

0 个答案:

没有答案