Задать вопрос
Ответы пользователя по тегу HTML
  • ThreeJs движение объекта вокруг своей оси?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    я делал как то так к сожалению не помню всех тонкостей
    этот пример был сделан для реализации костей но методы которые в нем использовались возможно помогут.
    // получаем мировую матрицу родительского объекта
                var m = E.uid[obj.eparent].mWorld.clone();
    
    // делаем параллельный перенос
                m.multiply(new THREE.Matrix4().setPosition(obj.pos));
    // поворачиваем
                m.multiply(new THREE.Matrix4().makeRotationFromQuaternion(obj.ang));
    // устанавливаем опорную точку
                m.multiply(new THREE.Matrix4().setPosition(obj.basis));
    
    // сохраняем трансформированную матрицу объекта для потомка
                obj.mWorld = m.clone();
    // масштабируем
                m.scale(obj.escale);
    // сбрасываем
                obj.matrix.identity();
    // применяем трансформированную матрицу к объекту
                obj.applyMatrix(m.clone());
    Ответ написан
    Комментировать
  • JS таймер для сайта с отсчетом с нуля?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    Это более менее точный таймер.

    var sw = 0;
    var ms = new Date().getTime();
    var mslast = new Date().getTime();
    var mscnt = 0;
    var dt = new  Date(mscnt);
    
    timeLoop();
    function timeLoop(){
    												
    	if(sw){		
    		dt = new  Date(mscnt);
    
    		ms = new Date().getTime();
    		mscnt += (ms - mslast);
    		mslast = ms;
    		
    		console.log(getDateTimer() ); // для примера	
    	}
    		
    	setTimeout(timeLoop, 1000);
    }
    
    function getDateTimer(){ // получить текущее время с момента запуска
    	return dt.getUTCHours() + ':' + dt.getUTCMinutes()  + ':' + dt.getSeconds() ;
    }
    
    function playTimer( beginSec){ // запустить (параметр с какой секунды)
    	if(beginSec !== undefined)  mscnt =  beginSec*1000;
    	sw = 1;
    }
    
    function pauseTimer(){ // приостановить
    	sw = 0;
    }
    
    // запускаем таймер со 150 секунды (2:30) ------------------------------------------
    playTimer(150);
    Ответ написан
    Комментировать