;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Tardígrado se movimenta igual a insetos 'gigantes'; segredo está na física

Getty Images
Imagem: Getty Images

Thaime Lopes

Colaboração para Tilt, em São Paulo

12/09/2021 04h00Atualizada em 12/09/2021 16h48

A curiosidade científica sobre os tardígrados, animais microscópicos que sobreviveriam à extinção da Terra, não é de hoje. Estudos e mais estudos são feitos para entender seus segredos e o motivo de eles serem tão resistentes. No mais recente deles, pesquisadores observaram as suas habilidades de movimento.

O resultado é que os tardígrados se locomovem como insetos muito maiores do que o seu tamanho. Eles possuem quatro pares de patas e cerca de 0,5 milímetro de comprimento. As informações são do site científico Live Science.

Resistência microscópica

Também conhecidos como ursos d'água, esses animais microscópicos possuem corpo segmentado. Como o próprio nome indica, eles vivem na água, mas o que mais impressiona é que todas as 1.300 espécies são extremamente difíceis de matar.

Eles conseguem sobreviver a temperaturas extremas, radiação solar e vácuo do espaço.

Como eles se movimentam

Segundo o estudo, publicado na revista científica PNAS, pouco se sabia sobre a movimentação dos tardígrados. O time de cientistas, liderado por Jasmine Nirody, pesquisadora do Centro de Estudos da Universidade Rockefeller em física e biologia de Nova York, observou a espécie H. exemplaris para se aprofundar sobre o tema.

Logo foi observado que os tardígrados dividem o esforço da locomoção entre as seis primeiras patas. As duas últimas, que ficam mais perto da parte traseira, possuem menos músculos. Além disso, eles conseguem se movimentar melhor se estiverem em uma superfície em que consigam cavar e empurrar o corpo com as garras.

Após a análise, os pesquisadores observaram que esses animais levantam uma pata por vez quando estão se deslocando lentamente, mas usam três ao mesmo tempo para ganhar velocidade — uma na frente e outra atrás do mesmo lado do corpo, e uma no meio do outro lado.

Isso indica que os tardígrados se movimentam parecido animais invertebrados com corpos segmentados e pernas articuladas que pertencem ao filo dos artrópodes. Entretanto, o estudo não conseguiu definir como um dos menores animais do mundo anda parecido com insetos tão maiores do que eles.

A primeira teoria é de que milhões de anos atrás os tardígrados e os artrópodes tenham compartilhado um anteado em comum. Porém, os cientistas também consideram a possibilidade de esse padrão de movimento ter sido desenvolvido individualmente quando suas linhas ancestrais se separaram.

Nirody explicou que isso significa que, apesar de terem tamanhos, estruturas corporais e ambientes de locomoção totalmente diferentes, há de se observar que o esquema de coordenação motora compartilhada entre as duas espécies é eficiente para ambos os tipos.