Простой и грязный, вы можете установить камеру или любой другой объект, который имеет место в качестве меры объекта для контроля за его скорость:
var DebugSpeedometer = (function() {
var lastMeasurement = 0,
currentSpeed = 0;
var lastMeasurementPosition = new THREE.Vector3(),
distance = new THREE.Vector3();
return {
update: function(measureObject, timeStep){
if(lastMeasurement + timeStep < clock.getElapsedTime()) {
lastMeasurement = clock.getElapsedTime();
distance = measureObject.getWorldPosition().distanceTo(lastMeasurementPosition);
currentSpeed = distance/timeStep;
lastMeasurementPosition = measureObject.getWorldPosition();
}
return currentSpeed;
}
};
})();
// globals
var clock = new THREE.Clock();
var speedoMeter = new DebugSpeedometer();
В функции обновления:
console.log(speedoMeter.update(camera, 1));
Благодаря человеку его помогает с некоторым добавлением. Спасибо снова – Robun
Обратите внимание, что это работает только с небольшим шагом времени. Если камера следит за кривой, она будет «обрезать углы» и дать вам недооценки, а чем меньше шаг времени, тем больше будет недооценка. Наверное, это нормально для большинства приложений, работающих со скоростью 60 кадров в секунду. –
Моим фактическим требованием является перемещение кулачка от 1 до другого pos в определенное время, например. (0,0,0) до (100,0 100), скажем, 5 сек. – Robun