【问题标题】:Scaling of 3d model on marker in a-frame在 a 帧中的标记上缩放 3d 模型
【发布时间】:2019-02-01 14:07:26
【问题描述】:

我正在使用 a-frame 在标记上加载 3d 模型。我想知道如何对 3d 模型进行动态缩放,例如当 3d 模型出现在标记上时,我如何放大和缩小 3d 模型。 请帮我解决这个问题。

【问题讨论】:

  • 如果this 有帮助请告诉我
  • 恐怕不行。
  • 我试过了,但它不起作用,你可以在框架中推荐另一个
  • 请提供一个代码示例并展示您到目前为止所尝试的内容。看看stackoverflow.com/help/how-to-ask 以获得更充分的答案。

标签: three.js aframe marker


【解决方案1】:

您可以通过设置scale 属性来放大/缩小3d 模型。 将您的模型包含在参考 let model = document.querySelector("#model"):

 model.setAttribute("scale", "2 2 2")

会放大的。

 model.setAttribute("scale", "0.5 0.5 0.5") 

会变小。


您可以将它与鼠标滚动或任何其他事件与addEventListener 连接,并根据读数更改比例。

鼠标滚轮示例:

window.addEventListener("wheel", (e) => {
    let scaleFactor = e.deltaY > 0 ? 0.9 : 1.1  //check if we scroll up, or down
    let scale = this.el.getAttribute("scale").clone() // clone the scale vector
    scale.multiplyScalar(scaleFactor)                 
    this.el.setAttribute("scale", scale)              // apply new scale
  })

现场小提琴here.

【讨论】:

  • 感谢亚当,它工作了一点帮助不同的 gltf 模型有不同的缩放比例,我可以在之前设置缩放比例然后缩放选项起作用。例如: ---- 使用缩放后会在标记上显示正确的布局选项,3d 对象太小,然后缩放后我可以看到。有什么方法可以设置初始比例然后我可以进行缩放
  • 您可以像在评论中那样设置比例,但初始大小很大程度上取决于模型大小,如在搅拌机或玛雅中设置的那样
  • 当我设置比例时我无法缩放。
  • 它在手机上也能用吗,比如我从手机上扫描图案,触摸它会放大????
  • 不,我试过了!!比我尝试添加适用于我的 touchmove 和 touchend 事件侦听器的另一种方法。
猜你喜欢
  • 2019-06-18
  • 2018-10-06
  • 2017-10-13
  • 2021-09-16
  • 2016-07-30
  • 2022-12-17
  • 2023-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多