2013-04-15 63 views
3

我目前是新增强现实编程,我想问一个关于cameraView的问题。我的目标是在特定的实际坐标中显示可点击的图像按钮并将其显示在cameraView中。在这种情况下,我想在我的cameraView(这是一个世界)里面显示的东西就是我的按钮。在尝试使用Wikitude/AndAR/Layar API之前,我决定调用其使用权限并且我正在使用DroidAR作为库和参考。然而,我似乎无法找到一种方法来显示我想要的东西。我想就这个问题寻求帮助。请告诉我或指导我实现它的正确方法。非常感谢你 !以下是我目前使用droidAR库SDK的代码。Java Android增强现实应用程序图像坐标

public class DisplayAR extends Setup { 
private static final float MIN_DIST = 15f; 
private static final float MAX_DIST = 55f; 

private Button b = null; 
protected static final String LOG_TAG = "StaticDemoSetup"; 

World world; 
GLCamera camera; 

private TimeModifier timeModifier; 


@Override 
public void _a_initFieldsIfNecessary() { 

    // allow the user to send error reports to the developer: 
} 


@Override 
public void _b_addWorldsToRenderer(GL1Renderer renderer, 
     GLFactory objectFactory, GeoObj currentPosition) { 

    camera = new GLCamera(new Vec(0, 0, 1)); 
    world = new World(camera); 

    timeModifier = new TimeModifier(1); 
    RenderList l = new RenderList(); 
    timeModifier.setChild(l); 
    world.add(timeModifier); 

    initI9Tests(world); 

    addTestGeoObj(world, camera); 

    renderer.addRenderElement(world); 

} 

private void addTestGeoObj(World w, GLCamera c) { 
    GeoObj o = new GeoObj(); 
    w.add(o); 
} 

private void initI9Tests(World w) { 

    { 
     // transform android ui elements into opengl models: 
     b = new Button(getActivity()); 
     b.setText("L.311"); 

     MeshComponent button = GLFactory.getInstance().newTexturedSquare("buttonId", IO.loadBitmapFromView(b)); 
     button.addChild(new AnimationFaceToCamera(camera, 0.5f)); 
     button.setScale(new Vec(10, 10, 10)); 
     button.setColor(Color.red()); 
     button.setOnClickCommand(new CommandShowToast(getActivity(), "THIS IS L.311")); 
     GeoObj treangleGeo = new GeoObj(); 
     treangleGeo.setVirtualPosition(new Vec(MIN_DIST, MAX_DIST, 0.0f)); 
     treangleGeo.setComp(button); 
     w.add(treangleGeo); 
    } 
} 

@Override 
public void _c_addActionsToEvents(EventManager eventManager, 
     CustomGLSurfaceView arView, SystemUpdater updater) { 

    ActionWASDMovement wasdAction = new ActionWASDMovement(camera, 25f, 
      50f, 20f); 
    ActionRotateCameraBuffered rotateAction = new ActionRotateCameraBuffered(
      camera); 

    eventManager.addOnLocationChangedAction(new ActionCalcRelativePos(
      world, camera)); 

    updater.addObjectToUpdateCycle(wasdAction); 
    updater.addObjectToUpdateCycle(rotateAction); 

    arView.addOnTouchMoveAction(wasdAction); 
    eventManager.addOnOrientationChangedAction(rotateAction); 

    eventManager.addOnTrackballAction(new ActionMoveCameraBuffered(camera, 
      5, 25)); 

} 

@Override 
public void _d_addElementsToUpdateThread(SystemUpdater worldUpdater) { 
    // add the created world to be updated: 
    worldUpdater.addObjectToUpdateCycle(world); 

} 

@Override 
public void _e2_addElementsToGuiSetup(GuiSetup guiSetup, Activity activity) { 

    guiSetup.setBottomMinimumHeight(50); 
    guiSetup.setBottomViewCentered(); 

} 

}

回答

1

尝试在www.wikitude.com用于增强现实wikitude库已样品例如simpleArbrowser就是u想

+0

嗯,我试过,之前我去了当前DroidAR 。在访问任何API之前,Wikitude有一些相当不好的权限,所以我继续使用DroidAR。感谢您的帮助无论如何感谢您的建议。我忘了填写已经使用过哪种类型的API/SDK的部分。我会立即编辑它们= D – CodeNewbie

+1

尝试使用它示例示例您不需要更改任何有关权限的内容,它只能在设备上使用,只需将数据作为字符串数组传递给维基增强现实主题示例 –

+0

的主要活动它的工作原理= D并且使用它并不麻烦,而不是请求使用其他API的权限。尼斯= D – CodeNewbie