Я делаю небольшой редактор 3D-сцен (который позволяет изменять только положение объектов).
Каждый объект рисуется с осью 3D X / Y / Z:
Как это работает: пользователь выбирает ось (X, Y или Z), щелкая левой кнопкой мыши по нему, затем, удерживая нажатой левую кнопку, перемещает мышь (для перемещения объекта в направлении оси). комплектация уже в порядке, но я хотел бы знать, how much
что объект должен быть переведен для выбранной оси, в зависимости от движения 2D мыши.
Например, на этом рисунке выбор оси X и перемещение мыши влево-вправо должно дать большее смещение, чем перемещение его вверх-вниз (для этого почти ноль)
Это должно быть действительно просто, но я не могу понять это.
Входными данными должны быть: смещение мыши с момента первого щелчка левой кнопкой мыши (2D-вектор), вектор выбранной оси (3D-вектор), матрица вида / матрицы проекции.
Выход: сумма (число с плавающей запятой или двойная)