Форум

* Как? Вращение источника света типа SPOT вокруг объекта в сцене с данными от гироскопа (как гиро-камера)?

27 июля 2016 01:34
пробую реализовать привязку к гиро и етсь вопросы:

Думаю, что вы можете воспользоваться модулем input и transform для своих целей.

// получаем объект, соответствующий гироскопу
var gyro_device = m_input.get_device_by_type(m_input.DEVICE_GYRO)


что то не пойму , а что будет ДОМ элементом ?
т.к. - "TypeError: m_input.get_device_by_type is not a function"
АПИ : "get_device_by_type_element(type, element)"

_____________________________

можно ещё m_input.GYRO_ORIENTATION_QUAT заменить на m_input.GYRO_ORIENTATION_ANGLES, тогда в обработчик будут приходить эйлеровские углы, смотря, что удобнее


а вот тут может етсь где пример использования с углами?
а чточто то не пойму сразу как подобраться к резульатту ((
Денис
27 июля 2016 10:45
что то не пойму , а что будет ДОМ элементом ?
т.к. - "TypeError: m_input.get_device_by_type is not a function"
АПИ : "get_device_by_type_element(type, element)"
да, get_device_by_type - опечатка, должно быть get_device_by_type_element;
вообще, это элемент, на котором должны отслеживаться события, для гироскопа это не актуально, поэтому не нужно ничего подавать; в документации, правда, это не отражено - поправим

а вот тут может етсь где пример использования с углами?
а чточто то не пойму сразу как подобраться к резульатту ((
код будет такой:
var gyro_device = m_input.get_device_by_type_element(m_input.DEVICE_GYRO);
m_input.attach_param_cb(gyro_device, m_input.GYRO_ORIENTATION_ANGLES, function(angles) {
    var alpha = angles[0];
    var beta = angles[1];
    var gamma = angles[2];
})


углы альфа, бета, гамма из стандарта:
DeviceOrientation Event Specification
27 июля 2016 12:16
Ответ на сообщение пользователя Иван Любовников
…..
код будет такой:
var gyro_device = m_input.get_device_by_type_element(m_input.DEVICE_GYRO);
m_input.attach_param_cb(gyro_device, m_input.GYRO_ORIENTATION_ANGLES, function(angles) {
var alpha = angles[0];
var beta = angles[1];
var gamma = angles[2];
})


…………….


спасибо большое, сегодня попробую добить нужно еше придумать математику как вычислить координаты положения истоника на полусфере перемещения вокруг объекта..
Денис
28 июля 2016 18:15
пробую, но пока безрезультатно вроде как не заходит в процедуру почему то… может быть так, что такое событие не поддерживается?

код засунут в load_cb()

 m_input.attach_param_cb(gyro_device, m_input.GYRO_ORIENTATION_ANGLES, function(angles) {
	    var alpha = angles[0]; //X
	    var beta = angles[1];  //Y
	    var gamma = angles[2];  //Z



без b4w я прямо стучался туда так и все работало :

window.addEventListener("devicemotion", function(e) {
deviceMotionCallbackHandler(e);
}, true);

function deviceMotionCallbackHandler(e) {
signX=-Math.round(e.accelerationIncludingGravity.x);
signY=Math.round(e.accelerationIncludingGravity.y);
signAngleNew=get_angle({x:0,y:0},{x:signX,y:signY});
}
Денис
29 июля 2016 18:29
пробую, но пока безрезультатно вроде как не заходит в процедуру почему то… может быть так, что такое событие не поддерживается?
проблема, определенно, в той ошибке
29 июля 2016 20:16
Ответ на сообщение пользователя Иван Любовников
проблема, определенно, в той ошибке


да я как раз приделываю пока свой старый метод из тизена прямой доступ к гироскопу
посомтрю если исчезнет ошибка то ок.

т.к. 1й вообще не срабатывал
Денис
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.