旋转平面用于查找世界坐标
Rotate plane used to find world coordinates
我正在尝试从 Plane
上的屏幕坐标中查找世界坐标,其中 mCamera
是 PerspectiveCamera
。
public Vector3 getWorldCoordinates(float x, float y) {
// Use an imaginary plane at z=0 to intersect ray
Plane plane = new Plane();
plane.set(0, 0, 1, 0);
Ray ray = mCamera.getPickRay(x, y);
Vector3 pos = new Vector3();
Intersector.intersectRayPlane(ray, plane, pos);
return pos;
}
如何修改此例程以在找到坐标之前在 X 轴上旋转 Plane
x
度?
是否有任何简单的内置 libgdx 例程用于旋转平面,例如 Camera
使用 Camera.rotate(Vector3.X, degrees)
?
将 Vector3 设置为您想要的方向,然后使用它来设置平面。所以在你的情况下
vector3.set(0, 0, 1);
vector3.rotateX(0.5f); // for example
plane.set(vector3.x, vector3.y, vector3.z, 0);
如果您在每一帧都这样做,您可能需要考虑在 class 构造函数中实例化您的矢量和平面一次并重新使用它们,这样您就不会偶尔触发 GC,这可能会导致口吃。
我正在尝试从 Plane
上的屏幕坐标中查找世界坐标,其中 mCamera
是 PerspectiveCamera
。
public Vector3 getWorldCoordinates(float x, float y) {
// Use an imaginary plane at z=0 to intersect ray
Plane plane = new Plane();
plane.set(0, 0, 1, 0);
Ray ray = mCamera.getPickRay(x, y);
Vector3 pos = new Vector3();
Intersector.intersectRayPlane(ray, plane, pos);
return pos;
}
如何修改此例程以在找到坐标之前在 X 轴上旋转 Plane
x
度?
是否有任何简单的内置 libgdx 例程用于旋转平面,例如 Camera
使用 Camera.rotate(Vector3.X, degrees)
?
将 Vector3 设置为您想要的方向,然后使用它来设置平面。所以在你的情况下
vector3.set(0, 0, 1);
vector3.rotateX(0.5f); // for example
plane.set(vector3.x, vector3.y, vector3.z, 0);
如果您在每一帧都这样做,您可能需要考虑在 class 构造函数中实例化您的矢量和平面一次并重新使用它们,这样您就不会偶尔触发 GC,这可能会导致口吃。