代码之家  ›  专栏  ›  技术社区  ›  Bob Aleena

如何使用AR.js获取检测多个标记

  •  1
  • Bob Aleena  · 技术社区  · 6 年前

    我正在尝试检测不同的标记。一种是名为And1Paint的图案。patt和另一个是预设的hiro

    当我显示hiro图案时,它会被AND1绘制检测到。拍打标记。E、 g.在下面的代码中,当我显示hiro标记时,它总是显示蓝色框而不是红色框。思考原因?我用样品试了一下。patt这已经在回购中,但也没有起作用。

    <!doctype HTML>
    <html>
    <script src="https://aframe.io/releases/0.6.1/aframe.min.js"></script>
    <script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.0/aframe/build/aframe-ar.js"> </script>
      <body style='margin : 0px; overflow: hidden;'>
        <a-scene embedded arjs='sourceType: webcam;'>
            <a-marker type='pattern' patternUrl='Data/and1painting.patt'>
                <a-box position='0 0.5 0' material='opacity: 0.5; side:double; color:blue;'>
                </a-box>
            </a-marker>
            <!-- handle marker with hiro preset -->
            <a-marker preset='hiro'>
                <a-box position='0 0.5 0' material='opacity: 0.5; side:double; color:red;'>
                </a-box>
            </a-marker>
            <a-entity camera></a-entity>
        </a-scene>
      </body>
    </html>
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   dirkk0    6 年前

    不幸的是,AR.JS目前仍然严重损坏: https://github.com/jeromeetienne/AR.js/pull/236

    如果你遵循问题中的评论,你可以找到一个可行的解决方案。

        2
  •  0
  •   Peter Agapov    6 年前

    实际上,ar.js一点也不坏。上面的代码中有一个语法错误,这就是它不起作用的原因。模式文件调用的正确语法只是“url=”而不是“patternUrl=”。

    尝试以下操作:

    a-marker type='pattern'url='Data/和1绘制。patt'

    我知道这很有效,因为我花了很长时间才弄明白。