jPCT-AE - a 3d engine for Android > Support

How get world view size?

(1/1)

Eloy7:
Hello,
    how get world view maxX,maxY.

I write menu on 3D.
Now i have different position of Object3D on different devices (which have different resolution)
I have got right maxX but wrong maxY


Here is the code, to calculate maxX and maxY:

Camera mCamera=new Camera();
mCamera.setPosition(new SimplyVector(0,0,5));
mCamera.setOrientation(new SimplyVector(0,0,-1),new SimplyVector(0,1,0));

double fov=mCamera.getFOV()/2;
double tg=(double)(Math.tan(fov)*(double)5); //5 is camera distance

double maxX=tg;
double maxY=(height/width)*maxX;

EgonOlsen:
Looks fine to me at first glance...try to cast width and height into double to ensure that the operation isn't done with integers.

Eloy7:
Ok, I had fix that, but it incorrect too.

double maxY=((double)height/(double)width)*maxX;

Object which have size 1f x 1f, when placed on the scene in coordinate (maxX-1, maxY-1) is not attached to right-up corner on the screen.
And when I change camera distance to another value (for example 6f), the gap between this object and the screen is getting smaller and object can be out of screen.

EgonOlsen:
Something is missing then and it won't work that way once the camera rotates anyway. Why don't you use the methods that the engine offers for this?:

http://www.jpct.net/jpct-ae/doc/com/threed/jpct/Interact2D.html#reproject2D3D(com.threed.jpct.Camera, com.threed.jpct.FrameBuffer, int, int, float)

Navigation

[0] Message Index

Go to full version