Перевод в мировые координаты

238
22 мая 2018, 12:50

Есть координаты мыши: mousePos , есть матрица view - view, есть матрица перспективной проекции: pMatrix. Я перевожу координаты в мировые: нахожу обратную матрицу проекции и обратную матрицу view и умножаю на координаты мыши. Координаты начала z=4, координаты конца z=-100.

В первом случае у меня получились такие координаты: mouseDir1 = (-0.1985 0.02887 4), а во втором такие: mouseDir2 = (-0.1985 0.02887 -100).

Почему координаты x,y одинаковые?

private Vector3f getCoord(MouseInput mouseInput,float z){
        int wdwWitdh = 640;
        int wdwHeight =640;
        Vector2d mousePos = mouseInput.getCurrentPos();
        float x = (float)(2 * mousePos.x) / (float)wdwWitdh - 1.0f;
        float y = 1.0f - (float)(2 * mousePos.y) / (float)wdwHeight;
        Matrix4f invProjectionMatrix = new Matrix4f();
        invProjectionMatrix.set(pMatrix);
        invProjectionMatrix.invert();
        Vector4f tmpVec = new Vector4f();
        tmpVec.set(x, y, z, 0);
        tmpVec.mul(invProjectionMatrix);
        tmpVec.z = z;
        tmpVec.w = 0.0f;
        Matrix4f viewMatrix = new Matrix4f().set(view);
        Matrix4f invViewMatrix = new Matrix4f();
        invViewMatrix.set(viewMatrix);
        invViewMatrix.invert();
        tmpVec.mul(invViewMatrix);
        Vector3f mouseDir1 = new Vector3f();
        mouseDir1.set(tmpVec.x, tmpVec.y, tmpVec.z);
        ///ТЕСТОВАЯ ПРОВЕРКА Z=-100;
        //конеч координаты луча
        Vector4f tmpVec1 = new Vector4f();
        tmpVec1.set(x, y, -100, 1.0f);
        tmpVec1.mul(invProjectionMatrix);
        tmpVec1.z =-100f;
        tmpVec1.w = 0.0f;
        tmpVec1.mul(invViewMatrix);
        Vector3f mouseDir2 = new Vector3f();
        mouseDir2.set(tmpVec1.x, tmpVec1.y, tmpVec1.z);
        System.out.println();
        return mouseDir1;
    }

В итоге получается такой луч:

READ ALSO
Найти сумму всех четных и сумму нечетных элементов массива

Найти сумму всех четных и сумму нечетных элементов массива

Начал изучать javaПолучил такое задание "Найти сумму всех четных и сумму нечетных элементов массива"

302
java график популярности [закрыт]

java график популярности [закрыт]

привет всем у меня такая проблема, пишу свой первый проект на java (Spring Boot), а именно пишу магазин одежды и мне надо чтобы в графике показывало...

250
Java Map stream

Java Map stream

Есть Map <String, <Person>> persons;

258