;(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

Sabe aquele olhar fofo que os cachorros fazem? A ciência explica o motivo

Cães também têm músculos miméticos, capazes de criar expressões rapidamente - iStock
Cães também têm músculos miméticos, capazes de criar expressões rapidamente Imagem: iStock

Ellen Alves

Colaboração para Tilt, do Rio de Janeiro

06/04/2022 15h38

Você não consegue resistir à expressão fofinha do seu cachorro quando ele implora por um petisco? Não é culpa sua. Segundo uma pesquisa publicada pela Universidade Pittsburgh, nos Estados Unidos, a expressão facial dos cães parece ter evoluído exatamente para que pudessem se comunicar melhor com humanos.

"Os cães são os únicos mamíferos que trocam olhares com os humanos, algo que não observamos em outros animais domesticados, como cavalos ou gatos", diz Anne Burrows, professora do departamento de fisioterapia da universidade, autora sênior da pesquisa.

"Nossas descobertas preliminares fornecem uma compreensão mais profunda do papel que as expressões faciais desempenham nas interações e comunicação entre cães e humanos", acrescenta.

O estudo, publicado na revista científica Proceedings of the National Academy of Sciences, relaciona as transformações faciais dos cachorros com seu processo de domesticação ao longo de centenas de anos.

Os cientistas fizeram uma comparação entre cães e lobos. Embora o momento exato não seja claro, os pesquisadores estimam que as duas espécies divergiram geneticamente há cerca de 33 mil anos, quando os humanos começaram a criar lobos seletivamente.

Como a pesquisa foi feita

O foco foi na anatomia de pequenos músculos usados para formar expressões faciais, chamados de músculos miméticos.

Em humanos, esses músculos são dominados por fibras de miosina que se contraem rapidamente, mas também se cansam logo, o que explica porque conseguimos criar expressões faciais instantaneamente, mas não mantê-las por muito tempo.

Os pesquisadores compararam as fibras de miosina em amostras de músculos faciais de lobos e cães domesticados. Os resultados revelaram que, como os humanos, cães e lobos têm músculos faciais dominados por fibras de contração rápida. Mas os lobos têm uma porcentagem maior de fibras de contração lenta em relação aos cães.

"Essas diferenças sugerem que ter fibras musculares mais rápidas contribui para a capacidade do cão de se comunicar efetivamente com as pessoas", disse Burrows.

"Ao longo do processo de domesticação, os humanos podem ter criado cães seletivamente com base em expressões faciais semelhantes às suas, e com o tempo os músculos dos cães podem ter evoluído para se tornarem 'mais rápidos', beneficiando ainda mais a comunicação", continua.

Desvendado os 'olhos de cachorro abandonado'

Em pesquisas anteriores, a equipe descobriu que cães têm um músculo mimético adicional, ausente nos lobos, que contribui para a expressão "olhar de cachorrinho".

Os cientistas afirmam que novas pesquisas serão necessárias para confirmar suas novas descobertas com métodos para diferenciar tipos adicionais de fibras de miosina. Isso poderia lançar uma nova luz sobre as diferenças anatômicas entre cães e lobos.

*Com informações dos sites Phys.org e Science Focus