Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Vuforia中单击部分模型(没有Unity)?_Java_Android_Ios_Augmented Reality_Vuforia - Fatal编程技术网

Java 如何在Vuforia中单击部分模型(没有Unity)?

Java 如何在Vuforia中单击部分模型(没有Unity)?,java,android,ios,augmented-reality,vuforia,Java,Android,Ios,Augmented Reality,Vuforia,我想通过点击屏幕,在Vuforia中创建调色板的可点击单元格(不带Unity): 我发现多米诺骨牌具有类似的功能,并这样做: 创建一个平板对象和多个单元格对象 通过点击参数x,y(单击坐标)调用isTapOnSetColor函数并获取坐标 坐标是正确的,但获取部分对象的id/名称是错误的 我认为这一行的问题是: boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd); 在多米诺骨牌的例子中,这是: bool

我想通过点击屏幕,在Vuforia中创建调色板的可点击单元格(不带Unity)

我发现多米诺骨牌具有类似的功能,并这样做:

  • 创建一个平板对象和多个单元格对象

  • 通过点击参数x,y(单击坐标)调用isTapOnSetColor函数并获取坐标

  • 坐标是正确的,但获取部分对象的id/名称是错误的

我认为这一行的问题是:

boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);
在多米诺骨牌的例子中,这是:

bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
但是我不知道该怎么做
domino->pickingTransform
并粘贴而不是这行modelViewMatrix(Tool.convertPose2GLMatrix(trackableResult.getPose()).getData())

我的触摸功能的完整代码:


你能帮我点击一下吗?或者是另一种方式(不是Unity?

基本上,
domino->pickingTransform
是为每个domino对象绘制的最终矩阵。domino示例的工作方式是,对于每个对象(domino),应用程序检查屏幕触摸的投影点,并查看它是否与对象的矩阵相交。拾取矩阵并不完全相同,因为您希望使拾取矩阵更具响应性,因此可以使拾取矩阵比图形矩阵宽一点


你说你得到了一个错误的id,但问题是-不同的细胞总是相同的id吗?如果不是,这可能是您在矩阵变换中产生的一些小计算错误。我建议进行一次可视化调试——为检测到的id添加一些图形指示,这样您就可以看到应用程序认为您单击了哪个单元格。这将帮助您朝着解决方案的方向前进。

“matrix44F”从“modelViewMatrix\u颜色”中获取其值,如我所见。那么,您在那里存储了哪些值?尝试使用此矩阵绘制一个直线矩形,以便查看其尺寸和位置。如果它没有正确地围绕单元格绘制,那么这确实是您的问题。@yakobom这是每个单元格的modelViewMatrixKeyframe