我一直在这里找到的iphone增强现实框架之上构建, 但遗憾的是,在没有陀螺仪的手机(即3GS)上,它不起作用(正如它所说的那样).
有没有人知道修复它使运动传感器和指南针标题相反?或者是否有人会如此富裕地为这样的框架提供代码?
我需要一种方法来使矢量工作,如果不可能,我将需要推进并只使用标题.
嗨,我正在开发基于位置的iOS应用程序.其中有一个功能可以在雷达视图中查找用户的朋友.我从后端获得了经度和经度.现在我尝试了很多东西,像雷达一样在雷达视图中显示它们(意味着当我在雷达中旋转朋友的斑点时也会旋转)
客户端需要的功能与应用程序LOVOO完全相同
我怎样才能做到这一点 ?请帮我.

您好我正在尝试创建与增强现实(AR)相关的应用程序,并能够在两个单独的应用程序中成功配置我的应用程序与Metaio SDK和OpenCV库.
但问题是我想将OpenCV和Metaio的库一起用于一个应用程序.所以任何人都可以帮助我进行整合.
在我的单个应用程序中,我想使用OpenCV进行无标记检测,使用MetaIO进行3D模型渲染.
Metaio:http://www.metaio.com/
OpenCV:http://opencv.org/
=====>
我正在使用opencv来检测相机图像中的形状,并希望在这些形状上显示由metaio呈现的3D对象.与标记跟踪类似.
Metaio和openCV,每个都有自己的cameraview.我已禁用openCV的cameraview.
我想将在onNewCameraFrame()方法中接收的ImageStruct对象转换为Android中的OpenCV Mat.为此,我已经注册了MetaioSDKCallback来连续接收相机框架.
但是,onSDKReady()与 onNewCameraFrame()这个回调方法不会被调用,虽然我已经加入"metaioSDK.requestCameraImage()".
这就是我坚持下去的地方.
我想知道是否有人使用ARCore SDK实时识别设备前面的垂直平面.
通过使用线方程定义墙来设法获得不错的结果:
z = Multiplier * x + Constant (For every y)
Run Code Online (Sandbox Code Playgroud)
通过"for y y"评论我的意思是我忽略了y轴(从房间的2d映射看上面的墙),以便计算定义墙的线.
乘数是点之间的旋转:
let angleDeg = Float((360 - angle + 360) % 360) * Float.pi / 180.0;
Run Code Online (Sandbox Code Playgroud)
所有计算是:
let angle: Int = Int((atan2(pointA.z - pointB.z, pointA.x - pointB.x) * 180) / Float.pi) % 360
yRotation = Float((360 - angle + 360) % 360) * Float.pi / 180.0
if pointA.x == pointB.x {
multiplier = Float.infinity
} else {
multiplier = (pointA.z - pointB.z) / (pointA.x - …Run Code Online (Sandbox Code Playgroud) 与ARCore兼容的下一代Android智能手机是什么?
是否有已知的未来兼容设备列表?也许是一般项目时间表?
我们即将购买一些用于AR开发评估的单元,起初我们考虑尝试其中一个Tango设备(我们已经有过Tango的良好体验),但我们目前的赌注是ARCore平台将以其优势击败它市场份额.
目前,兼容设备仅限于:
但显然,我们更愿意选择更多种类(例如S8 +,G6 ......)
我知道有一个已知的黑客可以让它在其他设备上运行,但最好是在我们仍然可以的情况下使用兼容的设备开始.
另外,有没有办法在连接到网络摄像头的模拟器上运行ARCore ?用于测试目的.
android augmented-reality android-emulator android-augmented-reality arcore
我试图在基于网络的增强现实应用程序中使用常规的 Three.js光线投射(与AR命中测试相反,这个问题不是关于真实飞机上的命中测试).
Web应用程序使用带有aframe-xr组件的 A-Frame 在WebXR Viewer for iOS和WebARCore for Android中获得WebXR支持,并且增强现实在这两个实验性浏览器中一般都可以正常工作.
但是,它包含aframe-xr的三个.xr.js和WebXR polyfill库中的某些内容会导致在具有WebXR支持的实验性浏览器中不正确地投射光线投射的方向向量.光线投射的原点很好(在相机的当前位置),但是方向总是在下方偏移(y坐标太小)并且在它应该的位置稍微向左(x坐标太小)偏移.
巧合(或不是),y似乎A-Frame默认偏移相机偏离1.6米左右.或习惯,因为这似乎已经降级到Three.js最新(未发布)版本,A-Frame这aframe-xr取决于工作.
这通常不是光线投射的问题,正如Glitch中的问题再现所证明的那样,我的测试结果如下:
Device/Example run | Normal 0.7.0 | WebXR | Normal 0.8.0 |
-----------------------|----------------|---------------|------------------|
Windows Chrome w/mouse | Correct | Correct | Correct |
S8 Chrome | Correct | Correct | Correct |
S8 WebARCore | Correct | Incorrect | Correct |
iPad Safari …Run Code Online (Sandbox Code Playgroud) 我试图让矢量的方向指向相机,相对于磁北.我的印象是我需要使用getOrientation()返回的值,但我不确定它们代表什么.当我改变手机的方向时,我从getOrientation()获得的值不会发生可预测的变化(旋转90度不会将值改变90度).我需要知道getOrientation()返回的值是什么意思.到目前为止我所写的内容如下:
package com.example.orientation;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;
public class Orientation extends Activity{
private SensorManager mSM;
private mSensorEventListener mSEL;
float[] inR = new float[16];
float[] outR= new float[16];
float[] I = new float[16];
float[] gravity = new float[3];
float[] geomag = new float[3];
float[] orientVals = new float[3];
final float pi = (float) Math.PI;
final float rad2deg = 180/pi;
/** Called when the activity is first created. */
@Override …Run Code Online (Sandbox Code Playgroud) rotation accelerometer orientation magnetometer augmented-reality
AR视图就像一个指南针,我有一个非常讨厌的问题.因此,当我以纵向握住手机(以便屏幕指向我的脸部)时,我remapCoordinateSystem会在按住它时将其调用为0.然后方位角(罗盘功能)是完美的,但是一旦我倾斜手机,方位角就会被毁坏,如果我向前弯曲,方位角会增加,如果我向后弯曲,它会减小.
我使用2个传感器来获取读数,Sensor.TYPE_MAGNETIC_FIELD和Sensor.TYPE_GRAVITY.
我使用的是一个非常基本的lowpassfilter,它是用alpha常量实现的,直接用于传感器的读取值.
这是我的代码:
float[] rotationMatrix = new float[9];
SensorManager.getRotationMatrix(rotationMatrix, null, gravitymeterValues,
magnetometerValues);
float[] remappedRotationMatrix = new float[9];
SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_X,
SensorManager.AXIS_Z, remappedRotationMatrix);
float results[] = new float[3];
SensorManager.getOrientation(remappedRotationMatrix, results);
float azimuth = (float) (results[0] * 180 / Math.PI);
if (azimuth < 0) {
azimuth += 360;
}
float pitch = (float) (results[1] * 180 / Math.PI);
float roll = (float) (results[2] * 180 / Math.PI);
Run Code Online (Sandbox Code Playgroud)
如你所见,这里没有魔力.当gravitymeterValues和magnetometerValues准备好使用时,我称这段代码.
我的问题是当我倾斜手机时如何阻止方位角疯狂?
我在Google Play商店,Compass上查了一个免费的应用程序并且它还没有解决这个问题,但我希望有一个解决方案.
我有两个解决方案: …
我正在制作一个增强现实应用程序,用户必须向目标扔球.我使用以下代码将球放在屏幕前10厘米处:
var translation = matrix_identity_float4x4
translation.columns.3.z = -0.1
print(translation.debugDescription)
print(frame.camera.transform)
projectile.simdTransform = matrix_multiply(frame.camera.transform, translation)
Run Code Online (Sandbox Code Playgroud)
目前游戏看起来像这样,但我想把球移到靠近屏幕的底部.
https://www.dropbox.com/s/4e122i5mtrti6fu/Screen%20Shot%202017-09-30%20at%203.16.15%20PM.png?dl=0
如何确保iOS AppStore上的应用程序仅显示启用ARKit的设备的兼容性?
android ×3
arcore ×2
arkit ×2
ios ×2
iphone ×2
objective-c ×2
aframe ×1
app-store ×1
core-motion ×1
integration ×1
java ×1
javascript ×1
kotlin ×1
location ×1
magnetometer ×1
math ×1
metaio ×1
opencv ×1
orientation ×1
rotation ×1
swift ×1
three.js ×1
xcode ×1